diff --git a/.gitignore b/.gitignore index 3afee3475a10291c108cdf6a4681978e0ac638b5..d56c055be1f0a23265da52a1bd65e6bea6556f47 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ build .sconsign.dblite +*.o diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1eb59ced4d22daff085e409e8e2153caa3ce57f5..7b1d22285eacd54f6ba0936182de4883f8a37e21 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,19 +1,178 @@ before_script: - - pwd - - cp -R ./* /home/gitlab-runner/code/peasoup_umbrella/zipr/ - - cd /home/gitlab-runner/code/peasoup_umbrella - - source set_env_vars + - "source ~gitlab-runner/cicd_support/cicd_support.shinc" + + after_script: - - "rm -rf /home/gitlab-runner/code/peasoup_umbrella/zipr/* || true" + - "echo Test Complete." + +stages: + - clean + - build + - test + + + +# +# Cleaning +# + +#template +.do-clean: &do-nightly-clean + stage: clean + script: + - ./cicd_tests/do-clean.sh + +# per os items +do-nightly-clean-ubuntu18: + <<: *do-nightly-clean + tags: + - ubuntu18 + variables: + OS: 'ubuntu18' + +do-nightly-clean-ubuntu16: + <<: *do-nightly-clean + tags: + - ubuntu16 + variables: + OS: 'ubuntu16' + +do-nightly-clean-centos75: + <<: *do-nightly-clean + tags: + - centos75 + variables: + OS: 'centos75' + + +# +# building +# + + +# template +.do-build: &do-build + stage: build + script: + - ./cicd_tests/do-build.sh + + +# per os items +do-build-ubuntu18: + <<: *do-build + tags: + - ubuntu18 + variables: + OS: 'ubuntu18' + + +do-build-ubuntu16: + <<: *do-build + tags: + - ubuntu16 + variables: + OS: 'ubuntu16' + +do-build-centos75: + <<: *do-build + tags: + - centos75 + variables: + OS: 'centos75' + + + +# +# $PSZ ls +# + +# template +.xform-ls: &xform-ls + stage: test + script: + - ./cicd_tests/xform-ls.sh + +#per OS +xform-ls-ubuntu18: + <<: *xform-ls + tags: + - ubuntu18 + variables: + OS: 'ubuntu18' + +xform-ls-ubuntu16: + <<: *xform-ls + tags: + - ubuntu16 + variables: + OS: 'ubuntu16' + +xform-ls-centos75: + <<: *xform-ls + tags: + - centos75 + variables: + OS: 'centos75' + +# +# $PSZ cat +# -testing: +# template +.xform-cat: &xform-cat + stage: test + script: + - ./cicd_tests/xform-cat.sh + +xform-cat-ubuntu18: + <<: *xform-cat tags: - - zipr + - ubuntu18 + variables: + OS: 'ubuntu18' + +xform-cat-ubuntu16: + <<: *xform-cat + tags: + - ubuntu16 + variables: + OS: 'ubuntu16' + +xform-cat-centos75: + <<: *xform-cat + tags: + - centos75 + variables: + OS: 'centos75' + +# +# run zipr internal tests +# + +# template +.internal-tests: &internal-tests + stage: test script: - - pwd - - hostname - - whoami - - cd zipr - - ls - - scons -c - - scons debug=1 + - ./cicd_tests/internal-tests.sh + +#per OS +internal-tests-ubuntu18: + <<: *internal-tests + tags: + - ubuntu18 + variables: + OS: 'ubuntu18' + +internal-tests-ubuntu16: + <<: *internal-tests + tags: + - ubuntu16 + variables: + OS: 'ubuntu16' + +internal-tests-centos75: + <<: *internal-tests + tags: + - centos75 + variables: + OS: 'centos75' diff --git a/cicd_tests/do-build.sh b/cicd_tests/do-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..2ea87c4665ef4cbab4078f18f408c32443c7b790 --- /dev/null +++ b/cicd_tests/do-build.sh @@ -0,0 +1,34 @@ +#/bin/bash + +set -e +set -x + +main() +{ + + # gather info for debugging later, probably not necessary + pwd + hostname + whoami + env|grep "^CICD" + + local orig_dir=$(pwd) + + # puts peasoup_umbrella (and all submodules) in CICD_MODULE_WORK_DIR + cicd_setup_module_dependency allnp/peasoup_umbrella.git + + + # puts the version of zipr to test in peasoup_umbrella/zipr. + cicd_put_module_in_tree peasoup_umbrella/zipr + + # Build/run $PSZ, test result + cd $CICD_MODULE_WORK_DIR/peasoup_umbrella + source set_env_vars + sudo ./get-peasoup-packages.sh all + ./build-all.sh + dropdb $PGDATABASE 2>/dev/null || true ; ./postgres_setup.sh + + cd $orig_dir +} + +main "$@" diff --git a/cicd_tests/do-clean.sh b/cicd_tests/do-clean.sh new file mode 100755 index 0000000000000000000000000000000000000000..95dc3b04bd7eed3a1c9bd554fcf9ffbe047547b8 --- /dev/null +++ b/cicd_tests/do-clean.sh @@ -0,0 +1,22 @@ +#/bin/bash + +set -e +set -x + +main() +{ + + # gather info for debugging later, probably not necessary + pwd + hostname + whoami + env|grep "^CICD" + + + if [[ $CICD_NIGHTLY == 1 ]] ; then + rm -rf $CICD_MODULE_WORK_DIR/peasoup_umbrella + fi + +} + +main "$@" diff --git a/cicd_tests/internal-tests.sh b/cicd_tests/internal-tests.sh new file mode 100755 index 0000000000000000000000000000000000000000..7d4c8ee050d6e1d7557957eb2555874154c3b645 --- /dev/null +++ b/cicd_tests/internal-tests.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e +set -x + +cd $CICD_MODULE_WORK_DIR/peasoup_umbrella +source set_env_vars +# run zipr internal tests +cd $ZIPR_HOME/test; scons +for i in *.exe; do ./$i; done + + diff --git a/cicd_tests/xform-cat.sh b/cicd_tests/xform-cat.sh new file mode 100755 index 0000000000000000000000000000000000000000..af86bf8e4498ad6dea605d247760350fa8a526ad --- /dev/null +++ b/cicd_tests/xform-cat.sh @@ -0,0 +1,10 @@ +cd $CICD_MODULE_WORK_DIR/peasoup_umbrella + +set -e +set -x + +source set_env_vars +cd /tmp +rm -rf cat.rida ped_cat; $PSZ $(which cat) ./cat.rida -c rida=on -s meds_static=off --tempdir ped_cat || true +if [[ ! -x ./cat.rida ]]; then cat ped_ls/logs/*; fi +./cat.rida /dev/null diff --git a/cicd_tests/xform-ls.sh b/cicd_tests/xform-ls.sh new file mode 100755 index 0000000000000000000000000000000000000000..8a37160ea7a35466a4c29ce0b60518e36eb02ef0 --- /dev/null +++ b/cicd_tests/xform-ls.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -e +set -x + +cd $CICD_MODULE_WORK_DIR/peasoup_umbrella +source set_env_vars +cd /tmp +rm -rf ls.rida ped_ls; $PSZ /bin/ls ./ls.rida -c rida=on -s meds_static=off --tempdir ped_ls || true +if [[ ! -x ./ls.rida ]]; then cat ped_ls/logs/*; fi +rm -rf ped_ls +./ls.rida diff --git a/test/ZiprRange.cpp b/test/ZiprRange.cpp index ebbd9e7e76963db98f9afe2d912e0d42626be75d..28027047034be6835b5913b6d32828a5c95c460e 100644 --- a/test/ZiprRange.cpp +++ b/test/ZiprRange.cpp @@ -61,18 +61,17 @@ bool TestRangeSpeed() { } //m.PrintMemorySpace(cout); - - for (int i = 0; - i<100000000; - i++) + const auto timeStart=clock(); + auto i=0; + for (i = 0; (clock()-timeStart)/CLOCKS_PER_SEC < 10; i++) { volatile RangeAddress_t found_start = 0; - Range_t placement; - placement = m.GetFreeRange(d->Size()); + auto placement = m.GetFreeRange(d->Size()); found_start = placement.GetStart(); found_start++; } + cout<<"In 10 seconds, executed "<<dec<<i<<" iterations of GetFreeRange()"<<endl; return true; }