Add unit test for int_size option for enums
diff --git a/tests/enum_sizes/SConscript b/tests/enum_sizes/SConscript
index 048592e..7b73163 100644
--- a/tests/enum_sizes/SConscript
+++ b/tests/enum_sizes/SConscript
@@ -5,8 +5,10 @@
 env.NanopbProto('enumsizes')
 
 p = env.Program(["enumsizes_unittests.c",
+                 "enumsizes_intsize_unittests.cc",
                  "enumsizes.pb.c",
                  "$COMMON/pb_encode.o",
                  "$COMMON/pb_decode.o",
                  "$COMMON/pb_common.o"])
 env.RunTest(p)
+
diff --git a/tests/enum_sizes/enumsizes.proto b/tests/enum_sizes/enumsizes.proto
index a85d416..efd8212 100644
--- a/tests/enum_sizes/enumsizes.proto
+++ b/tests/enum_sizes/enumsizes.proto
@@ -58,6 +58,41 @@
     PI16_MAX = 32767;
 }
 
+enum IntSizeInt8
+{
+    option (nanopb_enumopt).int_size = IS_8;
+    I8_A = 0;
+    I8_B = 2;
+    I8_C = 3;
+}
+
+
+enum IntSizeInt16
+{
+    option (nanopb_enumopt).int_size = IS_16;
+    I16_A = 0;
+    I16_B = 2;
+    I16_C = 3;
+}
+
+
+enum IntSizeInt32
+{
+    option (nanopb_enumopt).int_size = IS_32;
+    I32_A = 0;
+    I32_B = 2;
+    I32_C = 3;
+}
+
+
+enum IntSizeInt64
+{
+    option (nanopb_enumopt).int_size = IS_64;
+    I64_A = 0;
+    I64_B = 2;
+    I64_C = 3;
+}
+
 /* Protobuf supports enums up to 32 bits.
  * The 32 bit case is covered by HugeEnum in the alltypes test.
  */
diff --git a/tests/enum_sizes/enumsizes_intsize_unittests.cc b/tests/enum_sizes/enumsizes_intsize_unittests.cc
new file mode 100644
index 0000000..4f4cd3f
--- /dev/null
+++ b/tests/enum_sizes/enumsizes_intsize_unittests.cc
@@ -0,0 +1,16 @@
+#include <stdio.h>
+#include "enumsizes.pb.h"
+#include "unittests.h"
+
+extern "C" int TestIntSize() {
+  int status = 0;
+
+  TEST(sizeof(IntSizeInt8) == sizeof(uint8_t));
+  TEST(sizeof(IntSizeInt16) == sizeof(uint16_t));
+  TEST(sizeof(IntSizeInt32) == sizeof(uint32_t));
+  TEST(sizeof(IntSizeInt64) == sizeof(uint64_t));
+
+  if (status != 0) fprintf(stdout, "\n\nSome tests FAILED!\n");
+
+  return status;
+}
diff --git a/tests/enum_sizes/enumsizes_intsize_unittests.h b/tests/enum_sizes/enumsizes_intsize_unittests.h
new file mode 100644
index 0000000..091fbe7
--- /dev/null
+++ b/tests/enum_sizes/enumsizes_intsize_unittests.h
@@ -0,0 +1,3 @@
+#pragma once
+
+int TestIntSize();
\ No newline at end of file
diff --git a/tests/enum_sizes/enumsizes_unittests.c b/tests/enum_sizes/enumsizes_unittests.c
index 5606895..f2fbf8f 100644
--- a/tests/enum_sizes/enumsizes_unittests.c
+++ b/tests/enum_sizes/enumsizes_unittests.c
@@ -4,6 +4,7 @@
 #include <pb_encode.h>
 #include "unittests.h"
 #include "enumsizes.pb.h"
+#include "enumsizes_intsize_unittests.h"
 
 int main()
 {
@@ -65,6 +66,8 @@
         TEST(msg1.i16_max == (int)msg2.i16_max);
     }
 
+    status |= TestIntSize();
+
     if (status != 0)
         fprintf(stdout, "\n\nSome tests FAILED!\n");