From c9faab354fb314bacd9849503d8b4566a8c9ea62 Mon Sep 17 00:00:00 2001 From: Determinant Date: Tue, 31 Jul 2018 13:09:50 -0400 Subject: add cmake options --- CMakeLists.txt | 7 ++-- include/salticidae/util.h | 4 +-- src/config.h.in | 7 ++-- test/.gitignore | 2 +- test/CMakeLists.txt | 4 +-- test/test_bits.cpp | 85 +++++++++++++++++++++++++++++++++++++++++++++++ test/test_stream.cpp | 85 ----------------------------------------------- 7 files changed, 100 insertions(+), 94 deletions(-) create mode 100644 test/test_bits.cpp delete mode 100644 test/test_stream.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 587584f..6bcf5f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,8 +51,11 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set(CMAKE_BUILD_TYPE "Release") endif() -option(SALTICIDAE_ENABLE_DEBUG_LOG "enable debug log" OFF) -option(SALTICIDAE_ENABLE_NORMAL_LOG "enable regular log" ON) +option(SALTICIDAE_DEBUG_LOG "enable debug log" OFF) +option(SALTICIDAE_NORMAL_LOG "enable regular log" ON) +option(SALTICIDAE_MSG_STAT "enable message statistics" ON) +option(SALTICIDAE_NOCHECK "disable the sanity check" OFF) +option(SALTICIDAE_NOCHECKSUM " disable checksum in messages" OFF) configure_file(src/config.h.in include/salticidae/config.h @ONLY) diff --git a/include/salticidae/util.h b/include/salticidae/util.h index e589693..39a3683 100644 --- a/include/salticidae/util.h +++ b/include/salticidae/util.h @@ -84,12 +84,12 @@ class Logger { extern Logger logger; -#ifdef SALTICIDAE_ENABLE_DEBUG_LOG +#ifdef SALTICIDAE_DEBUG_LOG #define SALTICIDAE_NORMAL_LOG #define SALTICIDAE_ENABLE_LOG_DEBUG #endif -#ifdef SALTICIDAE_ENABLE_NORMAL_LOG +#ifdef SALTICIDAE_NORMAL_LOG #define SALTICIDAE_ENABLE_LOG_INFO #define SALTICIDAE_ENABLE_LOG_WARN #endif diff --git a/src/config.h.in b/src/config.h.in index 7637923..fb39d63 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -1,7 +1,10 @@ #ifndef _SALTICIDAE_CONFIG_H #define _SALTICIDAE_CONFIG_H -#cmakedefine SALTICIDAE_ENABLE_DEBUG_LOG -#cmakedefine SALTICIDAE_ENABLE_NORMAL_LOG +#cmakedefine SALTICIDAE_DEBUG_LOG +#cmakedefine SALTICIDAE_NORMAL_LOG +#cmakedefine SALTICIDAE_MSG_STAT +#cmakedefine SALTICIDAE_NOCHECK +#cmakedefine SALTICIDAE_NOCHECKSUM #endif diff --git a/test/.gitignore b/test/.gitignore index bc79950..2cd44f2 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -1,5 +1,5 @@ test_msg -test_stream +test_bits test_network bench_network Makefile diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 58d204f..9689df3 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -23,8 +23,8 @@ add_executable(test_msg test_msg.cpp) target_link_libraries(test_msg salticidae_static) -add_executable(test_stream test_stream.cpp) -target_link_libraries(test_stream salticidae_static) +add_executable(test_bits test_bits.cpp) +target_link_libraries(test_bits salticidae_static) add_executable(test_network test_network.cpp) target_link_libraries(test_network salticidae_static) diff --git a/test/test_bits.cpp b/test/test_bits.cpp new file mode 100644 index 0000000..7128a9a --- /dev/null +++ b/test/test_bits.cpp @@ -0,0 +1,85 @@ +/** + * Copyright (c) 2018 Cornell University. + * + * Author: Ted Yin + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include "salticidae/stream.h" + +using salticidae::DataStream; +using salticidae::get_hash; +using salticidae::get_hex; +using salticidae::Bits; + +void print(const Bits &a, int n) { + for (int i = 0; i < n; i++) + printf("%d", a.get(i)); + puts(""); +} + +int main() { + int n = 80; + Bits a(n); + for (int i = 0; i < n; i++) + { + a.set(i); + print(a, n); + } + for (int i = n - 1; i >= 0; i--) + { + a.unset(i); + print(a, n); + } + std::vector idxs; + for (int i = 0; i < 1000; i++) + { + idxs.push_back(rand() % n); + a.flip(idxs.back()); + print(a, n); + } + for (auto idx: idxs) + { + a.flip(idx); + print(a, n); + } + for (int i = 0; i < n; i++) + if (i & 1) a.set(i); + print(a, n); + for (int i = 0; i < n; i++) + if (i & 1) a.unset(i); + else a.set(i); + print(a, n); + printf("%s size: %d\n", get_hex(a).c_str(), a.size()); + DataStream s; + s << a; + Bits b; + s >> b; + Bits c(b); + Bits d(std::move(c)); + printf("%s\n", get_hex(b).c_str()); + print(b, b.size()); + Bits e(4); + e.set(0); + e.set(1); + print(e, e.size()); + return 0; +} diff --git a/test/test_stream.cpp b/test/test_stream.cpp deleted file mode 100644 index 7128a9a..0000000 --- a/test/test_stream.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/** - * Copyright (c) 2018 Cornell University. - * - * Author: Ted Yin - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is furnished to do - * so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -#include -#include "salticidae/stream.h" - -using salticidae::DataStream; -using salticidae::get_hash; -using salticidae::get_hex; -using salticidae::Bits; - -void print(const Bits &a, int n) { - for (int i = 0; i < n; i++) - printf("%d", a.get(i)); - puts(""); -} - -int main() { - int n = 80; - Bits a(n); - for (int i = 0; i < n; i++) - { - a.set(i); - print(a, n); - } - for (int i = n - 1; i >= 0; i--) - { - a.unset(i); - print(a, n); - } - std::vector idxs; - for (int i = 0; i < 1000; i++) - { - idxs.push_back(rand() % n); - a.flip(idxs.back()); - print(a, n); - } - for (auto idx: idxs) - { - a.flip(idx); - print(a, n); - } - for (int i = 0; i < n; i++) - if (i & 1) a.set(i); - print(a, n); - for (int i = 0; i < n; i++) - if (i & 1) a.unset(i); - else a.set(i); - print(a, n); - printf("%s size: %d\n", get_hex(a).c_str(), a.size()); - DataStream s; - s << a; - Bits b; - s >> b; - Bits c(b); - Bits d(std::move(c)); - printf("%s\n", get_hex(b).c_str()); - print(b, b.size()); - Bits e(4); - e.set(0); - e.set(1); - print(e, e.size()); - return 0; -} -- cgit v1.2.3-70-g09d2