summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/workflow.yml23
-rw-r--r--CMakeLists.txt21
-rw-r--r--benchmarks/.gitignore1
-rw-r--r--examples/birthday.c3
-rw-r--r--examples/bits.c3
5 files changed, 49 insertions, 2 deletions
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
new file mode 100644
index 00000000..5ceacd43
--- /dev/null
+++ b/.github/workflows/workflow.yml
@@ -0,0 +1,23 @@
+name: "Main Workflow"
+on:
+ pull_request:
+ push:
+
+jobs:
+ build_and_test:
+ runs-on: ubuntu-latest
+ env:
+ CFLAGS: -Wall -Wno-unused-function -ggdb3 -fsanitize=address -fsanitize=undefined -fsanitize=pointer-compare -fsanitize=pointer-subtract
+ CXXFLAGS: -Wall -Wno-unused-function -ggdb3 -fsanitize=address -fsanitize=undefined -fsanitize=pointer-compare -fsanitize=pointer-subtract
+ steps:
+ - name: 'Checkout'
+ uses: actions/checkout@v2
+ - name: 'Build & Test'
+ uses: ashutoshvarma/action-cmake-build@master
+ with:
+ cc: gcc
+ cxx: g++
+ build-type: Release
+ configure-options: -DBUILD_TESTING=1
+ ctest-options: --output-on-failure
+ run-test: true
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 00000000..f834aceb
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,21 @@
+cmake_minimum_required(VERSION 3.1)
+project(stc)
+add_library(stc INTERFACE)
+target_include_directories(stc INTERFACE include)
+
+include(CTest)
+if(BUILD_TESTING)
+ file(GLOB examples examples/*.c)
+ foreach(file IN LISTS examples)
+ get_filename_component(name "${file}" NAME_WE)
+ add_executable(${name} ${file})
+ target_link_libraries(${name} PRIVATE stc m)
+ add_test(NAME ${name} COMMAND ${name})
+ endforeach()
+ foreach(name IN ITEMS cdeq clist cmap csmap cvec)
+ add_executable(${name} benchmarks/${name}_benchmark.cpp)
+ target_link_libraries(${name} PRIVATE stc m)
+ add_test(NAME ${name} COMMAND ${name})
+ endforeach()
+endif()
+
diff --git a/benchmarks/.gitignore b/benchmarks/.gitignore
new file mode 100644
index 00000000..b883f1fd
--- /dev/null
+++ b/benchmarks/.gitignore
@@ -0,0 +1 @@
+*.exe
diff --git a/examples/birthday.c b/examples/birthday.c
index 0dbb544a..b3800f70 100644
--- a/examples/birthday.c
+++ b/examples/birthday.c
@@ -23,6 +23,7 @@ static void test_repeats(void)
int v = cmap_ic_emplace(&m, k, 0).ref->second += 1;
if (v > 1) printf("repeated value %llx (%d) at 2^%d\n", k, v, (int) log2(i));
}
+ cmap_ic_del(&m);
}
@@ -56,4 +57,4 @@ int main()
seed = time(NULL);
test_distribution();
test_repeats();
-} \ No newline at end of file
+}
diff --git a/examples/bits.c b/examples/bits.c
index 84bdbb6b..d8c6f762 100644
--- a/examples/bits.c
+++ b/examples/bits.c
@@ -9,6 +9,7 @@ int main()
char buf[256];
cbits_to_str(s1, buf, 0, -1);
printf("buf: %s: %zu\n", buf, cbits_count(s1));
+ cbits_del(&s1);
cbits_reset(&set, 9);
cbits_resize(&set, 43, false);
@@ -58,4 +59,4 @@ int main()
puts("");
}
}
-} \ No newline at end of file
+}