 1187f9d5df
			
		
	
	1187f9d5df
	
	
	
		
			
			We can already produce tarballs, which is the input format docker import expects. This makes it trivial to add docker as an output format. Co-Authored-By: Dan Prince <dprince@redhat.com> Change-Id: Ib60db3b717d33d4cf3181d70fe0ffbfa86fd5d02
		
			
				
	
	
		
			85 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| export TEST_ELEMENTS=$(dirname $0)/elements
 | |
| export DIB_ELEMENTS=$(dirname $0)/../elements
 | |
| export DIB_CMD=$(dirname $0)/../bin/disk-image-create
 | |
| 
 | |
| function build_test_image() {
 | |
|     format=${1:-}
 | |
| 
 | |
|     if [ -n "$format" ]; then
 | |
|         type_arg="-t $format"
 | |
|     else
 | |
|         type_arg=
 | |
|         format="qcow2"
 | |
|     fi
 | |
|     dest_dir=$(mktemp -d)
 | |
|     base_dest=$(basename $dest_dir)
 | |
| 
 | |
|     trap "rm -rf $dest_dir" EXIT
 | |
|     trap "docker rmi $base_dest/image" EXIT
 | |
| 
 | |
|     ELEMENTS_PATH=$DIB_ELEMENTS:$TEST_ELEMENTS \
 | |
|         $DIB_CMD -x $type_arg --docker-target=$base_dest/image \
 | |
|         -o $dest_dir/image -n fake-os
 | |
| 
 | |
|     format=$(echo $format | tr ',' ' ')
 | |
|     for format in $format; do
 | |
|         if [ $format != 'docker' ]; then
 | |
|             img_path="$dest_dir/image.$format"
 | |
|             if ! [ -f "$img_path" ]; then
 | |
|                 echo "Error: No image with name $img_path found!"
 | |
|                 exit 1
 | |
|             else
 | |
|                 echo "Found image $img_path."
 | |
|             fi
 | |
|         else
 | |
|             if ! docker image | grep $base_dest/image ; then
 | |
|                 echo "Error: No docker image with name $base_dest/image found!"
 | |
|                 exit 1
 | |
|             else
 | |
|                 echo "Found docker image $base_dest/image"
 | |
|             fi
 | |
|         fi
 | |
|     done
 | |
| 
 | |
|     trap EXIT
 | |
|     rm -rf $dest_dir
 | |
|     docker rmi $base_dest/image
 | |
| }
 | |
| 
 | |
| function run_element_test() {
 | |
|     test_element=$1
 | |
|     element=$2
 | |
| 
 | |
|     dest_dir=$(mktemp -d)
 | |
| 
 | |
|     trap "rm -rf $dest_dir /tmp/dib-test-should-fail" EXIT
 | |
| 
 | |
|     if break="after-error" break_outside_target=1 \
 | |
|         break_cmd="cp \$TMP_MOUNT_PATH/tmp/dib-test-should-fail /tmp/ || true" \
 | |
|         ELEMENTS_PATH=$DIB_ELEMENTS:$DIB_ELEMENTS/$element/test-elements \
 | |
|         $DIB_CMD -t tar -o $dest_dir/image -n $element $test_element; then
 | |
|         if ! [ -f "$dest_dir/image.tar" ]; then
 | |
|             echo "Error: Build failed for element: $element, test-element: $test_element."
 | |
|             echo "No image $dest_dir/image.tar found!"
 | |
|             exit 1
 | |
|         else
 | |
|             if tar -t $dest_dir/image.tar | grep -q /tmp/dib-test-should-fail; then
 | |
|                 echo "Error: Element: $element, test-element $test_element should have failed, but passed."
 | |
|                 exit 1
 | |
|             else
 | |
|                 echo "PASS: Element $element, test-element: $test_element"
 | |
|             fi
 | |
|         fi
 | |
|     else
 | |
|         if [ -f "/tmp/dib-test-should-fail" ]; then
 | |
|             echo "PASS: Element $element, test-element: $test_element"
 | |
|         else
 | |
|             echo "Error: Build failed for element: $element, test-element: $test_element."
 | |
|             exit 1
 | |
|         fi
 | |
|     fi
 | |
| 
 | |
|     trap EXIT
 | |
|     rm -rf $dest_dir /tmp/dib-test-should-fail
 | |
| }
 |