summaryrefslogtreecommitdiff
path: root/app/bin/unittest
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2018-03-19 19:55:58 +0100
committerJörg Frings-Fürst <debian@jff-webhosting.net>2018-03-19 19:55:58 +0100
commitd1a8285f818eb7e5c3d6a05709ea21a808490b8c (patch)
tree326578f0505cbed07cfe60de530022822dc237ac /app/bin/unittest
parent16e9630b79f0a7a90c6cedb6781175bb8b337dc1 (diff)
New upstream version 5.1.0upstream/5.1.0
Diffstat (limited to 'app/bin/unittest')
-rw-r--r--app/bin/unittest/CMakeLists.txt21
-rw-r--r--app/bin/unittest/defaultstest.c110
-rw-r--r--app/bin/unittest/pathstest.c121
3 files changed, 251 insertions, 1 deletions
diff --git a/app/bin/unittest/CMakeLists.txt b/app/bin/unittest/CMakeLists.txt
index b6d2bc5..32e2ddb 100644
--- a/app/bin/unittest/CMakeLists.txt
+++ b/app/bin/unittest/CMakeLists.txt
@@ -9,4 +9,23 @@ target_link_libraries(dxfformattest
dynstring
${LIBS})
-add_test(DXFOutputTest dxfformattest) \ No newline at end of file
+add_test(DXFOutputTest dxfformattest)
+
+add_executable( pathstest
+ pathstest.c
+ )
+
+target_link_libraries(pathstest
+ dynstring
+ ${LIBS})
+
+add_test(PathsTest pathstest)
+
+add_executable( defaultstest
+ defaultstest.c
+ )
+
+target_link_libraries(defaultstest
+ ${LIBS})
+
+add_test(DefaultsTest defaultstest)
diff --git a/app/bin/unittest/defaultstest.c b/app/bin/unittest/defaultstest.c
new file mode 100644
index 0000000..d877f46
--- /dev/null
+++ b/app/bin/unittest/defaultstest.c
@@ -0,0 +1,110 @@
+/** \file PathsTest.c
+* Unit tests for the paths module
+*/
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <string.h>
+#include <stdio.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+#include "common.h"
+
+#include "../appdefaults.c"
+
+struct appDefault tests[] = {
+ {"akey"},
+ {"hkey"},
+ {"mkey"},
+ {"zkey"}
+};
+
+
+const char *libDir ="Parameter/directory/";
+
+/**
+ * A dummy for the real MakePath function
+ */
+
+void
+MakeFullpath( char **result, ...)
+{
+ *result = libDir;
+}
+
+#define TESTARRAYSIZE (sizeof(tests) / sizeof(tests[0]) )
+
+struct appDefault test1[] = {
+ { "akey" }
+};
+
+#define TEST1ARRAYSIZE (sizeof(test1) / sizeof(test1[0]) )
+
+
+int
+wPrefGetIntegerBasic(const char *section, const char *name, long *result, long defaultValue)
+{
+ *result = defaultValue;
+ return(TRUE);
+}
+
+int
+wPrefGetFloatBasic(const char *section, const char *name, double *result, double defaultValue)
+{
+ *result = defaultValue;
+ return(TRUE);
+}
+
+const char * wPrefGetStringBasic(const char *section, const char *name)
+{
+ return(NULL);
+}
+
+static void BinarySearch(void **state)
+{
+ int result;
+ (void)state;
+
+ result = binarySearch(tests, 0, TESTARRAYSIZE-1, "nokey");
+ assert_int_equal(result, -1);
+
+ result = binarySearch(tests, 0, TESTARRAYSIZE-1, "akey");
+ assert_int_equal(result, 0);
+
+ result = binarySearch(tests, 1, TESTARRAYSIZE-1, "mkey");
+ assert_int_equal(result, 2);
+
+ result = binarySearch(tests, 0, TESTARRAYSIZE-1, "zkey");
+ assert_int_equal(result, 3);
+
+ result = binarySearch(test1, 0, TEST1ARRAYSIZE-1, "akey");
+ assert_int_equal(result, 0);
+
+ result = binarySearch(test1, 0, TEST1ARRAYSIZE-1, "zkey");
+ assert_int_equal(result, -1);
+
+}
+
+static void GetDefaults(void **state)
+{
+ double value = 0.0;
+ long intValue = 0;
+ (void)state;
+
+ wPrefGetIntegerExt("DialogItem", "cmdopt-preselect", &intValue, 2);
+ assert_int_equal(intValue, 1);
+
+ wPrefGetIntegerExt("DialogItem", "cmdopt-preselect", &intValue, 2);
+ assert_int_equal(intValue, 2);
+
+}
+
+int main(void)
+{
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(BinarySearch),
+ cmocka_unit_test(GetDefaults)
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/app/bin/unittest/pathstest.c b/app/bin/unittest/pathstest.c
new file mode 100644
index 0000000..b7e792e
--- /dev/null
+++ b/app/bin/unittest/pathstest.c
@@ -0,0 +1,121 @@
+/** \file PathsTest.c
+* Unit tests for the paths module
+*/
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <string.h>
+#include <stdio.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+#include <dynstring.h>
+#include "../paths.h"
+
+#ifdef WINDOWS
+#define TESTPATH "C:\\Test\\Path"
+#define TESTFILENAME "file.test"
+#define TESTFILE TESTPATH "\\" TESTFILENAME
+#define TESTPATH2 "D:\\Root"
+#define TESTFILE2 TESTPATH2 "\\file2."
+
+#define TESTRELATIVEPATH "Test\\Path"
+#define DEFAULTPATH "C:\\Default\\Path"
+#else
+#define TESTPATH "/Test/Path"
+#define TESTFILENAME "file.test"
+#define TESTFILE TESTPATH "/" TESTFILENAME
+#define TESTPATH2 "/Root"
+#define TESTFILE2 TESTPATH2 "/file2."
+
+#define TESTRELATIVEPATH "Test/Path"
+#define DEFAULTPATH "/Default/Path"
+
+#endif //WINDOWS
+void
+wPrefSetString(const char *section, const char *key, const char *value)
+{}
+
+char *wPrefGetStringExt(const char *section, const char *key)
+{
+ return(NULL);
+}
+
+const char *wGetUserHomeDir(void)
+{
+ return(DEFAULTPATH);
+}
+
+#include "../paths.c"
+
+static void SetGetPath(void **state)
+{
+ char *string;
+ (void)state;
+
+ string = GetCurrentPath("Test");
+ assert_string_equal(string, DEFAULTPATH);
+
+ SetCurrentPath("Test", TESTFILE );
+ string = GetCurrentPath("Test");
+ assert_string_equal(string, TESTPATH);
+
+ SetCurrentPath("Test", TESTFILE2);
+ string = GetCurrentPath("Test");
+ assert_string_equal(string, TESTPATH2);
+}
+
+static void Makepath(void **state)
+{
+ (void)state;
+ char *path;
+
+#ifdef WINDOWS
+ MakeFullpath(&path,
+ "C:",
+ TESTRELATIVEPATH,
+ TESTFILENAME,
+ NULL);
+
+ assert_string_equal(path, "C:" TESTRELATIVEPATH "\\" TESTFILENAME);
+#else
+ MakeFullpath(&path,
+ TESTRELATIVEPATH,
+ TESTFILENAME,
+ NULL);
+
+ assert_string_equal(path, TESTRELATIVEPATH "/" TESTFILENAME);
+#endif // WINDOWS
+
+ free(path);
+
+#ifdef WINDOWS
+ MakeFullpath(&path,
+ "C:",
+ "test",
+ "\\subdir",
+ TESTFILENAME,
+ NULL);
+ assert_string_equal(path, "C:test\\subdir\\" TESTFILENAME);
+#else
+ MakeFullpath(&path,
+ "test",
+ "/subdir",
+ TESTFILENAME,
+ NULL);
+ assert_string_equal(path, "test/subdir/" TESTFILENAME);
+
+#endif // WINDOWS
+
+
+ free(path);
+}
+
+int main(void)
+{
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(SetGetPath),
+ cmocka_unit_test(Makepath),
+ };
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}