# Note: Intended to be run as "make run-blackbox-tests" or "make run-blackbox-sync-nightly" # Makefile target installs & checks all necessary tooling # Extra tools that are not covered in Makefile target needs to be added in verify_prerequisites() load helpers_zot load helpers_wait function verify_prerequisites() { return 0 } function setup_file() { # Verify prerequisites are available if ! $(verify_prerequisites); then exit 1 fi # Setup zot server local zot_sync_per_root_dir=${BATS_FILE_TMPDIR}/zot-per local zot_sync_per_config_file=${BATS_FILE_TMPDIR}/zot_sync_per_config.json local zot_sync_ondemand_config_file=${BATS_FILE_TMPDIR}/zot_sync_ondemand_config.json local zot_minimal_root_dir=${BATS_FILE_TMPDIR}/zot-minimal local zot_minimal_config_file=${BATS_FILE_TMPDIR}/zot_minimal_config.json local oci_data_dir=${BATS_FILE_TMPDIR}/oci mkdir -p ${zot_sync_per_root_dir} mkdir -p ${zot_minimal_root_dir} mkdir -p ${oci_data_dir} local ZOT_LOG_FILE=${zot_sync_per_root_dir}/zot.log cat >${zot_sync_per_config_file} <${zot_minimal_config_file} <&3 run wait_for_string "sync: finished syncing all repos" ${ZOT_LOG_FILE} "5m" [ "$status" -eq 0 ] end=`date +%s` runtime=$((end-start)) echo "sync finished in $runtime sec" >&3 sleep 10 # wait a bit more because sync runs in background. # diff, but exclude log files, .sync subdirs and cache.db run diff -r -x "*.db" -x ".sync" -x "*.log" ${zot_sync_per_root_dir} ${zot_minimal_root_dir} [ "$status" -eq 0 ] }