diff --git a/testing/test.sh b/testing/test.sh index b7b7ed6..f8d5b34 100755 --- a/testing/test.sh +++ b/testing/test.sh @@ -19,7 +19,7 @@ ssh="${ssh_pass} ${ssh_cmd}" test_pkg_workdir="archzfs" -export packer_work_dir="${script_dir}/files/packer_work" +export vm_work_dir="${script_dir}/files/vm-work" export base_image_output_dir="${script_dir}/files" @@ -27,21 +27,28 @@ export base_image_output_dir="${script_dir}/files" archiso_build() { msg "Building the archiso if required" local build_archiso=0 + # Check the linux-lts version last used in the archiso msg2 "Checking for previous archiso build" + run_cmd_no_output_no_dry_run "cat ${script_dir}/../archiso/work/iso/arch/pkglist.x86_64.txt 2> /dev/null | grep linux-lts | grep -oP '(?<=core/linux-lts-).*$'" if [[ ${run_cmd_return} -ne 0 ]]; then - build_archiso=1 - elif [[ "$(find ${packer_work_dir} -maxdepth 1 -name 'archlinux*.iso' -print -quit &> /dev/null; echo $?)" -eq 1 ]]; then - msg2 "archzfs archiso does not exist!" + msg2 "Building the archiso!" build_archiso=1 else - # Make sure the archiso packages in the archiso are the current version current_archiso_lts_vers="${run_cmd_output}" - debug "current_archiso_lts_vers: ${current_archiso_lts_vers}" - if ! check_webpage "https://www.archlinux.org/packages/core/x86_64/linux-lts/" "(?<=

linux-lts )[\d\.-]+(?=

)" "${current_archiso_lts_vers}"; then - debug "Setting build_archiso to 1" + msg2 "Checking for archiso image" + run_cmd_no_output_no_dry_run "find ${vm_work_dir} -maxdepth 1 -name 'archlinux*.iso' -print | grep -q archlinux" + if [[ ${run_cmd_return} -eq 1 ]]; then + msg2 "archzfs archiso does not exist!" build_archiso=1 + else + # Make sure the archiso packages in the archiso are the current version + debug "current_archiso_lts_vers: ${current_archiso_lts_vers}" + if ! check_webpage "https://www.archlinux.org/packages/core/x86_64/linux-lts/" "(?<=

linux-lts )[\d\.-]+(?=

)" "${current_archiso_lts_vers}"; then + msg2 "Building the archiso!" + build_archiso=1 + fi fi fi @@ -59,18 +66,18 @@ archiso_build() { fi # Delete the working directories since we are out-of-date - run_cmd_no_output_no_dry_run "rm -rf ${script_dir}/../archiso/out ${script_dir}/../archiso/work ${packer_work_dir}/*.iso" + run_cmd_no_output_no_dry_run "rm -rf ${script_dir}/../archiso/out ${script_dir}/../archiso/work ${vm_work_dir}/*.iso" - cd ${packer_work_dir} + cd ${vm_work_dir} source_safe "${test_mode}/conf.sh" && source_safe "${test_mode}/archiso.sh" && test_build_archiso - cd - + cd - &> /dev/null } archiso_init_vars() { - export archiso_iso_name=$(find ${packer_work_dir}/ -iname "archlinux*.iso" | xargs basename 2> /dev/null ) - export archiso_sha=$(sha1sum ${packer_work_dir}/${archiso_iso_name} 2> /dev/null | awk '{ print $1 }') - export archiso_url="${packer_work_dir}/${archiso_iso_name}" + export archiso_iso_name=$(find ${vm_work_dir}/ -iname "archlinux*.iso" | xargs basename 2> /dev/null ) + export archiso_sha=$(sha1sum ${vm_work_dir}/${archiso_iso_name} 2> /dev/null | awk '{ print $1 }') + export archiso_url="${vm_work_dir}/${archiso_iso_name}" debug "archiso_iso_name=${archiso_iso_name}" debug "archiso_sha=${archiso_sha}" debug "archiso_url=${archiso_url}" @@ -101,15 +108,6 @@ usage() { echo " -h: Show help information." echo " -n: Dryrun; Output commands, but don't do anything." echo " -d: Show debug info." - # echo " -R: Re-use existing archzfs test packages." - # echo - # echo "Modes:" - # echo - # for ml in "${mode_list[@]}"; do - # mn=$(echo ${ml} | cut -f2 -d:) - # md=$(echo ${ml} | cut -f3 -d:) - # echo -e " ${mn} ${md}" - # done echo echo "Commands:" echo @@ -125,9 +123,6 @@ generate_test_commands_list debug_print_array "test_commands_list" "${test_commands_list[@]}" -# generate_mode_list "${script_dir}/../src/kernels" - - for (( a = 0; a < $#; a++ )); do # if [[ ${args[$a]} == "-R" ]]; then # commands+=("reuse") @@ -174,68 +169,68 @@ if [[ "${test_mode}" != "" ]]; then msg "Building arch base image" - if [[ ! -d "${packer_work_dir}" ]]; then - run_cmd_no_output_no_dry_run "mkdir -p ${packer_work_dir}" + if [[ ! -d "${vm_work_dir}" ]]; then + run_cmd_no_output_no_dry_run "mkdir -p ${vm_work_dir}" fi - if [[ -d "${packer_work_dir}/output-qemu" ]]; then - msg2 "Deleting '${packer_work_dir}/output-qemu' because it should not exist" - run_cmd_no_dry_run "rm -rf ${packer_work_dir}/output-qemu" - fi + # if [[ -d "${vm_work_dir}/output-qemu" ]]; then + # msg2 "Deleting '${vm_work_dir}/output-qemu' because it should not exist" + # run_cmd_no_dry_run "rm -rf ${vm_work_dir}/output-qemu" + # fi - if [[ ! -d "${packer_work_dir}" ]]; then - msg2 "Creating '${packer_work_dir}' because it does not exist" - run_cmd_no_output_no_dry_run "mkdir ${packer_work_dir}" - fi + # if [[ ! -d "${vm_work_dir}" ]]; then + # msg2 "Creating '${vm_work_dir}' because it does not exist" + # run_cmd_no_output_no_dry_run "mkdir ${vm_work_dir}" + # fi # Clear out everything except packer_cache and the archiso - run_cmd_no_dry_run "find ${packer_work_dir} -mindepth 1 ! -iname 'mirrorlist' ! -iname 'archlinux*.iso' ! -iname 'packer_cache' -exec rm -rf {} \;" + # run_cmd_no_dry_run "find ${vm_work_dir} -mindepth 1 ! -iname 'mirrorlist' ! -iname 'archlinux*.iso' ! -iname 'packer_cache' -exec rm -rf {} \;" - if [[ ! -f "${packer_work_dir}/mirrorlist" ]]; then + if [[ ! -f "${vm_work_dir}/mirrorlist" ]]; then msg2 "Generating pacman mirrorlist" - run_cmd_no_dry_run "/usr/bin/reflector -c US -l 5 -f 5 --sort rate 2>&1 > ${packer_work_dir}/mirrorlist" + run_cmd_no_dry_run "/usr/bin/reflector -c US -l 5 -f 5 --sort rate 2>&1 > ${vm_work_dir}/mirrorlist && cat ${vm_work_dir}/mirrorlist" fi - msg2 "Using packer to build the base image ..." - - # Base files - run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/tests/archzfs-qemu-base/packages' '${packer_work_dir}/packages'" - run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/tests/archzfs-qemu-base/packer.json' '${packer_work_dir}/packer.json'" - run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/tests/archzfs-qemu-base/setup.sh' '${packer_work_dir}/setup.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/../lib.sh' '${packer_work_dir}/lib.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/../conf.sh' '${packer_work_dir}/archzfs-conf.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/files/poweroff.timer' '${packer_work_dir}/poweroff.timer'" - - # Test files - run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/archiso.sh' '${packer_work_dir}/test-archiso.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/boot.sh' '${packer_work_dir}/test-boot.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/chroot.sh' '${packer_work_dir}/test-chroot.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/conf.sh' '${packer_work_dir}/test-conf.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/fs.sh' '${packer_work_dir}/test-fs.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/hooks.sh' '${packer_work_dir}/test-hooks.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/pacman.sh' '${packer_work_dir}/test-pacman.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/config.sh' '${packer_work_dir}/test-config.sh'" - run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/syslinux.cfg' '${packer_work_dir}/syslinux.cfg'" - - # Make it easy to get the files into the archiso environment - run_cmd_no_dry_run "tar --exclude='*.iso' --exclude=packer_cache --exclude=b.tar -C ${packer_work_dir} -cvhf ${packer_work_dir}/b.tar ." + # msg2 "Using packer to build the base image ..." + + # # Base files + run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/tests/archzfs-qemu-base/packages' '${vm_work_dir}/packages'" + # run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/tests/archzfs-qemu-base/packer.json' '${vm_work_dir}/packer.json'" + # run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/tests/archzfs-qemu-base/setup.sh' '${vm_work_dir}/setup.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/../lib.sh' '${vm_work_dir}/lib.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/../conf.sh' '${vm_work_dir}/archzfs-conf.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${script_dir}/files/poweroff.timer' '${vm_work_dir}/poweroff.timer'" + + # # Test files + # run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/archiso.sh' '${vm_work_dir}/test-archiso.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/boot.sh' '${vm_work_dir}/test-boot.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/chroot.sh' '${vm_work_dir}/test-chroot.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/conf.sh' '${vm_work_dir}/test-conf.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/fs.sh' '${vm_work_dir}/test-fs.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/hooks.sh' '${vm_work_dir}/test-hooks.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/pacman.sh' '${vm_work_dir}/test-pacman.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/config.sh' '${vm_work_dir}/test-config.sh'" + # run_cmd_no_output_no_dry_run "check_symlink '${test_mode}/syslinux.cfg' '${vm_work_dir}/syslinux.cfg'" + + # # Make it easy to get the files into the archiso environment + # run_cmd_no_dry_run "tar --exclude='*.iso' --exclude=packer_cache --exclude=b.tar -C ${vm_work_dir} -cvhf ${vm_work_dir}/b.tar ." archiso_build archiso_init_vars base_image_name # Uncomment to enable packer debug - export PACKER_LOG=1 - export PACKER_CACHE_DIR="${packer_work_dir}/packer_cache" + # export PACKER_LOG=1 + # export PACKER_CACHE_DIR="${vm_work_dir}/packer_cache" - # run_cmd "cd ${packer_work_dir} && packer-io build -debug packer.json" - run_cmd "cd ${packer_work_dir} && packer-io build packer.json" + # run_cmd "cd ${vm_work_dir} && packer-io build -debug packer.json" + # run_cmd "cd ${vm_work_dir} && packer-io build packer.json" # msg "Moving the compiled base image" # run_cmd "mv -f ${base_image_output_dir}/output-qemu/packer-qemu ${base_image_path}" msg "Resetting ownership" - run_cmd "chown -R ${makepkg_nonpriv_user}: '${packer_work_dir}'" + run_cmd "chown -R ${makepkg_nonpriv_user}: '${vm_work_dir}'" fi diff --git a/testing/tests/archzfs-qemu-base/packer.json b/testing/tests/archzfs-qemu-base/packer.json index d73d54c..d7fad9f 100755 --- a/testing/tests/archzfs-qemu-base/packer.json +++ b/testing/tests/archzfs-qemu-base/packer.json @@ -1,6 +1,6 @@ { "variables": { - "http_dir": "{{env `packer_work_dir`}}", + "http_dir": "{{env `vm_work_dir`}}", "iso_url": "{{env `archiso_url`}}", "iso_checksum": "{{env `archiso_sha`}}", "iso_checksum_type": "sha1", diff --git a/testing/tests/archzfs-qemu-lts-git-test-00-bootfs/archiso.sh b/testing/tests/archzfs-qemu-lts-git-test-00-bootfs/archiso.sh index e19ac43..f86ae00 100644 --- a/testing/tests/archzfs-qemu-lts-git-test-00-bootfs/archiso.sh +++ b/testing/tests/archzfs-qemu-lts-git-test-00-bootfs/archiso.sh @@ -2,11 +2,11 @@ test_build_archiso() { msg "Building archiso" cd ${test_root_dir}/../../../archiso/ &> /dev/null - if [[ -d ${packer_work_dir}/out ]] && [[ $(ls -1 | wc -l) -gt 0 ]]; then + if [[ -d ${vm_work_dir}/out ]] && [[ $(ls -1 | wc -l) -gt 0 ]]; then run_cmd "rm -rf ${test_root_dir}/archiso/out/archlinux*" fi run_cmd "./build.sh -v" - msg2 "Copying archiso to packer_work_dir" - run_cmd "cp ${test_root_dir}/../../../archiso/out/archlinux* ${packer_work_dir} && rm -rf ${test_root_dir}/archiso/work" + msg2 "Copying archiso to vm_work_dir" + run_cmd "cp ${test_root_dir}/../../../archiso/out/archlinux* ${vm_work_dir} && rm -rf ${test_root_dir}/archiso/work" cd - &> /dev/null } diff --git a/testing/tests/archzfs-qemu-lts-test-00-bootfs/archiso.sh b/testing/tests/archzfs-qemu-lts-test-00-bootfs/archiso.sh index 505e597..e081189 100644 --- a/testing/tests/archzfs-qemu-lts-test-00-bootfs/archiso.sh +++ b/testing/tests/archzfs-qemu-lts-test-00-bootfs/archiso.sh @@ -6,11 +6,11 @@ test_build_archiso() { msg "Building archiso" cd ${test_root_dir}/../../../archiso/ &> /dev/null - if [[ -d ${packer_work_dir}/out ]] && [[ $(ls -1 | wc -l) -gt 0 ]]; then + if [[ -d ${vm_work_dir}/out ]] && [[ $(ls -1 | wc -l) -gt 0 ]]; then run_cmd_no_dry_run "rm -rf ${test_root_dir}/archiso/out/archlinux*" fi run_cmd_no_dry_run "./build.sh -v" - msg2 "Copying archiso to packer_work_dir" - run_cmd_no_dry_run "cp ${test_root_dir}/../../../archiso/out/archlinux* ${packer_work_dir} && rm -rf ${test_root_dir}/archiso/work" + msg2 "Copying archiso to vm_work_dir" + run_cmd_no_dry_run "cp ${test_root_dir}/../../../archiso/out/archlinux* ${vm_work_dir} && rm -rf ${test_root_dir}/archiso/work" cd - &> /dev/null } diff --git a/testing/tests/archzfs-qemu-std-git-test-00-bootfs/archiso.sh b/testing/tests/archzfs-qemu-std-git-test-00-bootfs/archiso.sh index e19ac43..f86ae00 100644 --- a/testing/tests/archzfs-qemu-std-git-test-00-bootfs/archiso.sh +++ b/testing/tests/archzfs-qemu-std-git-test-00-bootfs/archiso.sh @@ -2,11 +2,11 @@ test_build_archiso() { msg "Building archiso" cd ${test_root_dir}/../../../archiso/ &> /dev/null - if [[ -d ${packer_work_dir}/out ]] && [[ $(ls -1 | wc -l) -gt 0 ]]; then + if [[ -d ${vm_work_dir}/out ]] && [[ $(ls -1 | wc -l) -gt 0 ]]; then run_cmd "rm -rf ${test_root_dir}/archiso/out/archlinux*" fi run_cmd "./build.sh -v" - msg2 "Copying archiso to packer_work_dir" - run_cmd "cp ${test_root_dir}/../../../archiso/out/archlinux* ${packer_work_dir} && rm -rf ${test_root_dir}/archiso/work" + msg2 "Copying archiso to vm_work_dir" + run_cmd "cp ${test_root_dir}/../../../archiso/out/archlinux* ${vm_work_dir} && rm -rf ${test_root_dir}/archiso/work" cd - &> /dev/null } diff --git a/testing/tests/archzfs-qemu-std-test-00-bootfs/archiso.sh b/testing/tests/archzfs-qemu-std-test-00-bootfs/archiso.sh index e19ac43..f86ae00 100644 --- a/testing/tests/archzfs-qemu-std-test-00-bootfs/archiso.sh +++ b/testing/tests/archzfs-qemu-std-test-00-bootfs/archiso.sh @@ -2,11 +2,11 @@ test_build_archiso() { msg "Building archiso" cd ${test_root_dir}/../../../archiso/ &> /dev/null - if [[ -d ${packer_work_dir}/out ]] && [[ $(ls -1 | wc -l) -gt 0 ]]; then + if [[ -d ${vm_work_dir}/out ]] && [[ $(ls -1 | wc -l) -gt 0 ]]; then run_cmd "rm -rf ${test_root_dir}/archiso/out/archlinux*" fi run_cmd "./build.sh -v" - msg2 "Copying archiso to packer_work_dir" - run_cmd "cp ${test_root_dir}/../../../archiso/out/archlinux* ${packer_work_dir} && rm -rf ${test_root_dir}/archiso/work" + msg2 "Copying archiso to vm_work_dir" + run_cmd "cp ${test_root_dir}/../../../archiso/out/archlinux* ${vm_work_dir} && rm -rf ${test_root_dir}/archiso/work" cd - &> /dev/null } diff --git a/testing/tests/archzfs-qemu-std-test-00-default/archiso.sh b/testing/tests/archzfs-qemu-std-test-00-default/archiso.sh index 6a06cd9..d3f8078 100644 --- a/testing/tests/archzfs-qemu-std-test-00-default/archiso.sh +++ b/testing/tests/archzfs-qemu-std-test-00-default/archiso.sh @@ -6,11 +6,11 @@ test_build_archiso() { msg "Building archiso" cd ${test_root_dir}/../../../archiso/ &> /dev/null - if [[ -d ${packer_work_dir}/out ]] && [[ $(ls -1 | wc -l) -gt 0 ]]; then + if [[ -d ${vm_work_dir}/out ]] && [[ $(ls -1 | wc -l) -gt 0 ]]; then run_cmd "rm -rf ${test_root_dir}/archiso/out/archlinux*" fi run_cmd "./build.sh -v" - msg2 "Copying archiso to packer_work_dir" - run_cmd "cp ${test_root_dir}/../../../archiso/out/archlinux* ${packer_work_dir} && rm -rf ${test_root_dir}/archiso/work" + msg2 "Copying archiso to vm_work_dir" + run_cmd "cp ${test_root_dir}/../../../archiso/out/archlinux* ${vm_work_dir} && rm -rf ${test_root_dir}/archiso/work" cd - &> /dev/null }