Alias("test", [unittest])
unittest_src_dir = os.path.join(src_dir, 'resource', 'csdk', 'security', 'unittest') + os.sep
-unittest_build_dir = os.path.join(srmtest_env.get('BUILD_DIR'), 'resource', 'csdk', 'security', 'unittest') + os.sep
+unittest_build_dir = os.path.join(srmtest_env.get('BUILD_DIR'), 'resource', 'csdk', 'security', 'unittest')
+unittest_build_dir = os.path.normpath(unittest_build_dir) + os.sep
-srmtest_env.AppendUnique(CPPDEFINES = ['SECURITY_BUILD_UNITTEST_DIR='+unittest_build_dir.encode('string_escape')])
+srmtest_env.AppendUnique(CPPDEFINES = ['SECURITY_BUILD_UNITTEST_DIR='+unittest_build_dir.encode('string_escape').replace("\\", "\\\\")])
srmtest_env.Alias("install", srmtest_env.Install( unittest_build_dir,
unittest_src_dir + 'oic_unittest.json'))
uint8_t *data = NULL;
size_t size = 0;
+#ifdef _MSC_VER
+// The path SECURITY_BUILD_UNITTEST_DIR can contain '\u' which VS misinterprets as a universal
+// character name in the STRINGIZE macro and outputs warning C4429 'possible incomplete or
+// improperly formed universal-character-name' https://msdn.microsoft.com/en-us/library/z78hwa6k.aspx
+#pragma warning(push)
+#pragma warning(disable:4429)
+#endif
size_t len = strlen(STRINGIZE(SECURITY_BUILD_UNITTEST_DIR)) + strlen(filename) + 1;
char *filepath = (char *)OICCalloc(1, len);
if (!filepath)
int ret = snprintf(filepath, len, "%s%s", STRINGIZE(SECURITY_BUILD_UNITTEST_DIR), filename);
printf("Root build path: %s \n", filepath);
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
if (ret == (int)(len - 1))
{
FILE *fp = fopen(filepath, "rb");