aboutsummaryrefslogblamecommitdiffstats
path: root/README.org
blob: 9f83ddc00628765e850b6255815ce676969c1436 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                                                                 
    
                   
 

               
                           


             


                                                          
 


                
                                                    





                                     

        

         





                                                  
                                                    










                                     



                                                                    
 

                                    
              














                                                     
         
#+html: <p align="center"><img src="res/logo.png" width="30%" height="30%" /></p>
* ck
*The Config Keeper*

* build it
** requirements
- clang (llvm) or gcc (gnu)
- cmake
- sqlite3-dev

** compiler
By default I use clang, if you want to use gcc just
edit the =CMakeLists.txt= file and change =clang= to =gcc=

** make
#+BEGIN_SRC sh
# clone the repo
> cd ~/code; git clone https://gitlab.com/grm-grm/ck
# make a build directory and enter it
> mkdir ~/ck_build; cd ~/ck_build;
# run cmake
> cmake ~/code/ck
# run make
> make
# run ck
> ./ck
#+END_SRC

* for devs
** make
Just build with address sanitizer enabled like so:
llvm has better asan than gcc, so I use that.
#+BEGIN_SRC sh
# clone the repo
> cd ~/code; git clone https://gitlab.com/grm-grm/ck
# make a build directory and enter it
> mkdir ~/ck_build; cd ~/ck_build;
# run cmake
> cmake ~/code/ck -DCK_ASAN=ON
# run make
> make
# run ck
> ./ck
#+END_SRC

** tests
The testing "suite" is a bash script that runs regression
and unit tests. Regression tests are under the =tests/= directory
and are bash scripts that test =ck= functionality. Unit tests reside
under =unit/= directory and test the code.

*** run tests
Simply go to the build dir and type.
#+BEGIN_SRC sh
$ ./check_ck
#+END_SRC

*** test suite
#+BEGIN_SRC sh
$ ./check_ck -h
ck test suite
use without flags to run all tests

flags:
  -u, --unit            run only the unit tests
  -r, --regression      run only the regression tests
  -c, --clear           remove test files
                         use it if the tests fail
  -h, --help, *         print this
#+END_SRC