@@ -213,7 +213,8 @@ t POST "libpod/quadlets" "$TMPD/$quadlet_3_4.tar" 400 \
213213# Scenario: install tar that contains one quadlet file and a non-quadlet file will succeed
214214# then update the quadlet file, and the non-quadlet file, and verify the update is successful
215215quadlet_5=quadlet-test-5-$( cat /proc/sys/kernel/random/uuid) .container
216- containerfile_1=quadlet-test-containerfile-1-$( cat /proc/sys/kernel/random/uuid) .Containerfile
216+ containerfile_1=quadlet-test-containerfile-1-$( cat /proc/sys/kernel/random/uuid)
217+ configfile_1=quadlet-test-configfile-1-$( cat /proc/sys/kernel/random/uuid) .conf
217218
218219containerfile_1_content=$( cat << EOF
219220FROM quay.io/podman/hello
@@ -241,9 +242,16 @@ CMD ["echo", "Updated"]
241242EOF
242243)
243244
245+ configfile_1_content=$( cat << EOF
246+ [ini]
247+ foo=bar
248+ EOF
249+ )
250+
244251echo " $quadlet_5_content " > " $TMPD /$quadlet_5 "
245252echo " $containerfile_1_content " > " $TMPD /$containerfile_1 "
246- tar --format=posix -C " $TMPD " -cvf " $TMPD /$quadlet_5$containerfile_1 .tar" " $quadlet_5 " " $containerfile_1 " & > /dev/null
253+ echo " $configfile_1_content " > " $TMPD /$configfile_1 "
254+ tar --format=posix -C " $TMPD " -cvf " $TMPD /$quadlet_5$containerfile_1 .tar" " $quadlet_5 " " $containerfile_1 " " $configfile_1 " & > /dev/null
247255
248256t POST " libpod/quadlets" " $TMPD /$quadlet_5$containerfile_1 .tar" 200 \
249257 ' .InstalledQuadlets|length=2' \
@@ -273,6 +281,36 @@ t GET "libpod/quadlets/$quadlet_5/file" 200
273281is " $output " " $quadlet_5_updated_content " " quadlet-5 should be updated"
274282is " $( cat " $quadlet_install_dir /$containerfile_1 " ) " " $containerfile_1_updated_content " " containerfile_1 should be installed"
275283
284+ # Scenario: install tar where a non-quadlet file sorts lexicographically before the quadlet file.
285+ # "AAA-" sorts before "quadlet-test-", exercising the file ordering in the API handler.
286+ quadlet_7=quadlet-test-7-$( cat /proc/sys/kernel/random/uuid) .container
287+ containerfile_3=AAA-containerfile-$( cat /proc/sys/kernel/random/uuid)
288+
289+ quadlet_7_content=$( cat << EOF
290+ [Container]
291+ ContainerName=quadlet-7
292+ Image=quay.io/podman/hello
293+ EOF
294+ )
295+
296+ containerfile_3_content=$( cat << EOF
297+ FROM quay.io/podman/hello
298+ CMD ["echo", "hello"]
299+ EOF
300+ )
301+
302+ echo " $quadlet_7_content " > " $TMPD /$quadlet_7 "
303+ echo " $containerfile_3_content " > " $TMPD /$containerfile_3 "
304+ tar --format=posix -C " $TMPD " -cvf " $TMPD /$quadlet_7$containerfile_3 .tar" " $quadlet_7 " " $containerfile_3 " & > /dev/null
305+
306+ t POST " libpod/quadlets" " $TMPD /$quadlet_7$containerfile_3 .tar" 200 \
307+ ' .InstalledQuadlets|length=2' \
308+ ' .QuadletErrors|length=0'
309+
310+ t GET " libpod/quadlets/$quadlet_7 /file" 200
311+ is " $output " " $quadlet_7_content " " quadlet-7 should be installed"
312+ is " $( cat " $quadlet_install_dir /$containerfile_3 " ) " " $containerfile_3_content " " containerfile_3 should be installed"
313+
276314# Scenario: test a multipart call, then update without replace, and then replace
277315quadlet_6=quadlet-test-6-$( cat /proc/sys/kernel/random/uuid) .container
278316containerfile_2=quadlet-test-containerfile-2-$( cat /proc/sys/kernel/random/uuid) .Containerfile
@@ -332,10 +370,12 @@ is "$(cat "$quadlet_install_dir/$containerfile_2")" "$containerfile_2_updated_co
332370
333371podman quadlet rm " $quadlet_1 " \
334372 " $quadlet_5 " \
335- " $quadlet_6 "
373+ " $quadlet_6 " \
374+ " $quadlet_7 "
336375
337376rm -f " $quadlet_install_dir /$containerfile_1 "
338377rm -f " $quadlet_install_dir /$containerfile_2 "
378+ rm -f " $quadlet_install_dir /$containerfile_3 "
339379rm -rf $TMPD
340380
341381# DELETE endpoint tests
0 commit comments