| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -35,6 +35,10 @@ DEFAULT_SKIP_TESTS=(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    centos/build-succeeds
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# The default output formats (specified to disk-image-create's "-t"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# command.  Elements can override with a test-output-formats file
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				DEFAULT_OUTPUT_FORMATS="tar"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				function log_with_prefix {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local pr=$1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local log
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -82,13 +86,15 @@ function wait_minus_n {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    fi
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# run_disk_element_test <test_element> <element>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#  Run a disk-image-build .tar build of ELEMENT including any elements
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#  specified by TEST_ELEMENT
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# run_disk_element_test <test_element> <element> <use_tmp> <output_formats>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#  Run a disk-image-build build of ELEMENT including any elements
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#  specified by TEST_ELEMENT.  Pass OUTPUT_FORMAT to "-t"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				function run_disk_element_test() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local test_element=$1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local element=$2
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local dont_use_tmp=$3
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local output_format="$4"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local use_tmp_flag=""
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local dest_dir=$(mktemp -d)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -102,12 +108,17 @@ function run_disk_element_test() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        break_cmd="cp -v \$TMP_MOUNT_PATH/tmp/dib-test-should-fail ${dest_dir} || true" \
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        DIB_SHOW_IMAGE_USAGE=1 \
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        ELEMENTS_PATH=$DIB_ELEMENTS/$element/test-elements \
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        $DIB_CMD -x -t tar,qcow2 ${use_tmp_flag} -o $dest_dir/image -n $element $test_element 2>&1 \
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        $DIB_CMD -x -t ${output_format} \
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                       ${use_tmp_flag} \
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                       -o $dest_dir/image -n $element $test_element 2>&1 \
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				           | log_with_prefix "${element}/${test_element}"; then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if ! [ -f "$dest_dir/image.qcow2" ]; then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            echo "Error: qcow2 build failed for element: $element, test-element: $test_element."
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            echo "No image $dest_dir/image.qcow2 found!"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if [[ "qcow2" =~ "$output_format" ]]; then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if ! [ -f "$dest_dir/image.qcow2" ]; then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                echo "Error: qcow2 build failed for element: $element, test-element: $test_element."
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                echo "No image $dest_dir/image.qcow2 found!"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                exit 1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            fi
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        fi
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        # check inside the tar for sentinel files
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -305,16 +316,25 @@ for test in "${TESTS_TO_RUN[@]}"; do
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    element=${test%/*}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    test_element=${test#*/}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    element_dir=$DIB_ELEMENTS/${element}/test-elements/${test_element}/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # tests default to disk-based, but "element-type" can optionally
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # override that
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    element_type=disk
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    element_type_override=$DIB_ELEMENTS/${element}/test-elements/${test_element}/element-type
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    element_type_override=${element_dir}/element-type
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if [ -f ${element_type_override} ]; then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        element_type=$(cat ${element_type_override})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    fi
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # override the output format if specified
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    element_output=${DEFAULT_OUTPUT_FORMATS}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    element_output_override=${element_dir}/test-output-formats
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if [ -f $element_output_override ]; then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        element_output=$(cat ${element_output_override})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    fi
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    echo "Running $test ($element_type)"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    run_${element_type}_element_test $test_element $element ${DONT_USE_TMP} &
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    run_${element_type}_element_test $test_element $element ${DONT_USE_TMP} "${element_output}" &
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				done
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# Wait for the rest of the jobs
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				 
 |