@@ -36,7 +36,7 @@ log() {
3636run_step () {
3737 local logfile=" $1 "
3838 shift
39-
39+
4040 mkdir -p " $( dirname " $logfile " ) "
4141 {
4242 echo " + $* "
@@ -52,7 +52,7 @@ run_step() {
5252wait_for_registry () {
5353 local port=" $1 "
5454 for _ in $( seq 1 30) ; do
55- if curl -fsS " http://127.0.0.1 :${port} /v2/" > /dev/null 2>&1 ; then
55+ if curl -fsS " http://localhost :${port} /v2/" > /dev/null 2>&1 ; then
5656 return 0
5757 fi
5858 sleep 1
@@ -81,10 +81,10 @@ cleanup_case() {
8181 local work_dir=" $4 "
8282
8383 set +e
84- " $runtime " rm -f " $diff_container " > /dev/null 2>&1
85- " $runtime " rm -f " $load_container " > /dev/null 2>&1
86- " $runtime " rmi " $DELTA_TAG " > /dev/null 2>&1
87- " $runtime " rmi " $BASE_TAG " > /dev/null 2>&1
84+ " $runtime " rm -f " $diff_container " > /dev/null
85+ " $runtime " rm -f " $load_container " > /dev/null
86+ " $runtime " rmi " $DELTA_TAG " > /dev/null
87+ " $runtime " rmi " $BASE_TAG " > /dev/null
8888 rm -f " $ARCHIVE_PATH "
8989 rm -rf " $work_dir "
9090 set -e
@@ -114,53 +114,47 @@ run_case() {
114114 local logs_dir=" $work_dir /logs"
115115 local diff_registry_dir=" $work_dir /registry_diff"
116116 local load_registry_dir=" $work_dir /registry_load"
117- local diff_container=" ddiff-${name} -diff"
118- local load_container=" ddiff-${name} -load"
117+ local diff_container=" ddiff-diff"
118+ local load_container=" ddiff-load"
119+
120+ # Set environment variables
121+ if [[ -n " $force_key " ]]; then
122+ export " $force_key =$force_value "
123+ fi
119124
125+ # Clear the environment
120126 rm -rf " $work_dir "
121127 mkdir -p " $logs_dir " " $diff_registry_dir " " $load_registry_dir "
122128
123129 log " [$name ] prerequisites"
124- if ! have_all_commands " ${required[@]} " ; then
125- SKIPPED=$(( SKIPPED + 1 ))
126- echo " SKIP: $name "
127- cleanup_case " $runtime " " $diff_container " " $load_container " " $work_dir "
128- return 0
129- fi
130+ cleanup_case " $runtime " " $diff_container " " $load_container " " $work_dir "
130131
131132 local status=0
132133
133134 log " [$name ] build base image"
134135 run_step " $logs_dir /build-base.log" \
135- " $runtime " build -t " $BASE_TAG " -f " $DOCKERFILES_DIR /Dockerfile.base" " $TEST_DIR " || status=$?
136+ ddiff build -t " $BASE_TAG " -f " $DOCKERFILES_DIR /Dockerfile.base" " $TEST_DIR " || status=$?
136137
137138 if [[ " $status " -eq 0 ]]; then
138139 log " [$name ] build delta image"
139140 run_step " $logs_dir /build-delta.log" \
140- " $runtime " build -t " $DELTA_TAG " -f " $DOCKERFILES_DIR /Dockerfile.delta" " $TEST_DIR " || status=$?
141+ ddiff build -t " $DELTA_TAG " -f " $DOCKERFILES_DIR /Dockerfile.delta" " $TEST_DIR " || status=$?
141142 fi
142-
143143 if [[ " $status " -eq 0 ]]; then
144144 log " [$name ] start diff registry"
145+ export DDIFF_URL=" http://localhost:${diff_port} "
145146 run_step " $logs_dir /registry-diff-start.log" \
146- " $runtime " run -d --name " $diff_container " -p " ${diff_port} :5000" -v " $diff_registry_dir :/var/lib/registry " " $REGISTRY_IMAGE " || status=$?
147+ " $runtime " run -d --name " $diff_container " -p " ${diff_port} :5000" " $REGISTRY_IMAGE " || status=$?
147148 fi
148-
149+
149150 if [[ " $status " -eq 0 ]]; then
150151 wait_for_registry " $diff_port " || { echo " registry not ready on ${diff_port} " | tee " $logs_dir /registry-diff-ready.log" ; status=1; }
151152 fi
152-
153+
153154 if [[ " $status " -eq 0 ]]; then
154155 log " [$name ] ddiff diff"
155- if [[ -n " $force_key " ]]; then
156- run_step " $logs_dir /ddiff-diff.log" \
157- env DDIFF_URL=" http://127.0.0.1:${diff_port} " " $force_key =$force_value " \
158- python3 " $DDIFF_PY " diff " $BASE_TAG " " $DELTA_TAG " || status=$?
159- else
160- run_step " $logs_dir /ddiff-diff.log" \
161- env DDIFF_URL=" http://127.0.0.1:${diff_port} " \
162- python3 " $DDIFF_PY " diff " $BASE_TAG " " $DELTA_TAG " || status=$?
163- fi
156+ run_step " $logs_dir /ddiff-diff.log" \
157+ ddiff diff " $BASE_TAG " " $DELTA_TAG " || status=$?
164158 fi
165159
166160 if [[ " $status " -eq 0 && ! -f " $ARCHIVE_PATH " ]]; then
@@ -175,37 +169,25 @@ run_case() {
175169 mkdir -p " $diff_registry_dir "
176170
177171 log " [$name ] start fresh load registry"
172+ export DDIFF_URL=" http://localhost:${load_port} "
178173 run_step " $logs_dir /registry-load-start.log" \
179- " $runtime " run -d --name " $load_container " -p " ${load_port} :5000" -v " $load_registry_dir :/var/lib/registry " " $REGISTRY_IMAGE " || status=$?
174+ " $runtime " run -d --name " $load_container " -p " ${load_port} :5000" " $REGISTRY_IMAGE " || status=$?
180175 fi
181-
176+
182177 if [[ " $status " -eq 0 ]]; then
183178 wait_for_registry " $load_port " || { echo " registry not ready on ${load_port} " | tee " $logs_dir /registry-load-ready.log" ; status=1; }
184179 fi
185180
186181 if [[ " $status " -eq 0 ]]; then
187182 log " [$name ] ddiff load"
188- if [[ -n " $force_key " ]]; then
189- run_step " $logs_dir /ddiff-load.log" \
190- env DDIFF_URL=" http://127.0.0.1:${load_port} " " $force_key =$force_value " \
191- python3 " $DDIFF_PY " load " $ARCHIVE_PATH " || status=$?
192- else
193- run_step " $logs_dir /ddiff-load.log" \
194- env DDIFF_URL=" http://127.0.0.1:${load_port} " \
195- python3 " $DDIFF_PY " load " $ARCHIVE_PATH " || status=$?
196- fi
197- fi
198-
199- if [[ " $status " -eq 0 && -n " $expect_marker " ]]; then
200- if ! grep -q " $expect_marker " " $logs_dir /ddiff-diff.log" ; then
201- echo " missing mode marker: $expect_marker " | tee " $logs_dir /mode-check.log"
202- status=1
203- fi
183+ run_step " $logs_dir /ddiff-load.log" \
184+ python3 " $DDIFF_PY " load " $ARCHIVE_PATH " || status=$?
204185 fi
205186
187+ # exit 0
206188 if [[ " $status " -eq 0 ]]; then
207189 log " [$name ] verify loaded image"
208- run_step " $logs_dir /verify.log" " $runtime " run --rm " $DELTA_TAG " tmux -V || status=$?
190+ run_step " $logs_dir /verify.log" " $runtime " run --rm " $DELTA_TAG " cat hello_ddiff.txt || status=$?
209191 fi
210192
211193 cleanup_case " $runtime " " $diff_container " " $load_container " " $work_dir "
@@ -265,19 +247,33 @@ run_selected_cases() {
265247 ;;
266248 esac
267249
268- [[ " $target " == " all" || " $target " == " docker" ]] && run_docker_mode
269- [[ " $target " == " all" || " $target " == " docker-skopeo" ]] && run_docker_skopeo_mode
270- [[ " $target " == " all" || " $target " == " podman" ]] && run_podman_mode
250+ if [[ " $target " == " all" || " $target " == " docker" ]]; then
251+ run_docker_mode
252+ fi
253+ if [[ " $target " == " all" || " $target " == " docker-skopeo" ]]; then
254+ run_docker_skopeo_mode
255+ fi
256+ if [[ " $target " == " all" || " $target " == " podman" ]]; then
257+ run_podman_mode
258+ fi
271259}
272260
273261main () {
274262 mkdir -p " $TMP_ROOT "
275263 run_selected_cases " ${1:- all} "
276264
277265 echo " "
278- echo " Total: $TOTAL , Passed: $PASSED , Failed: $FAILED , Skipped: $SKIPPED "
279-
280- [[ " $FAILED " -eq 0 ]]
266+ echo " ==================== TEST RESULTS ===================="
267+ echo " Total cases run: $TOTAL "
268+ echo " Passed: $PASSED "
269+ echo " Failed: $FAILED "
270+ echo " Skipped: $SKIPPED "
271+ echo " ======================================================"
272+
273+ if [[ " $FAILED " -ne 0 ]]; then
274+ exit 1
275+ fi
276+ exit 0
281277}
282278
283279main " $@ "
0 commit comments