From 473daecdbfe659cec0e307b341636a8a76c1d4da Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 7 Aug 2020 13:42:47 +0200 Subject: [PATCH] [grubcfg] expand config-testing for the new features - create directories for new tests ahead of the tests themselves; this **can** still cause problems if a test is run standalone. - if creating the grub-dir at runtime is necessary, be informative if it fails. --- src/modules/grubcfg/main.py | 6 +++++- src/modules/grubcfg/tests/2.global | 2 +- src/modules/grubcfg/tests/3.global | 10 ++++++++++ src/modules/grubcfg/tests/3.job | 10 ++++++++++ src/modules/grubcfg/tests/4.global | 10 ++++++++++ src/modules/grubcfg/tests/4.job | 10 ++++++++++ src/modules/grubcfg/tests/CMakeTests.txt | 10 +++++++--- 7 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 src/modules/grubcfg/tests/3.global create mode 100644 src/modules/grubcfg/tests/3.job create mode 100644 src/modules/grubcfg/tests/4.global create mode 100644 src/modules/grubcfg/tests/4.job diff --git a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py index 04b5eba9e..fad6d3677 100644 --- a/src/modules/grubcfg/main.py +++ b/src/modules/grubcfg/main.py @@ -55,7 +55,11 @@ def get_grub_config_path(root_mount_point): default_config_file = "00calamares" if not os.path.exists(default_dir): - os.mkdir(default_dir) + try: + os.mkdir(default_dir) + except: + libcalamares.utils.debug("Failed to create '%r'" % default_dir) + raise return os.path.join(default_dir, default_config_file) diff --git a/src/modules/grubcfg/tests/2.global b/src/modules/grubcfg/tests/2.global index 83e79db28..88f789630 100644 --- a/src/modules/grubcfg/tests/2.global +++ b/src/modules/grubcfg/tests/2.global @@ -2,7 +2,7 @@ bogus: true firmwareType: bios bootLoader: grub -rootMountPoint: /tmp/calamares +rootMountPoint: /tmp/calamares/grubcfg-test-2 branding: bootloaderEntryName: generic diff --git a/src/modules/grubcfg/tests/3.global b/src/modules/grubcfg/tests/3.global new file mode 100644 index 000000000..45468d4df --- /dev/null +++ b/src/modules/grubcfg/tests/3.global @@ -0,0 +1,10 @@ +--- +bogus: true +firmwareType: bios +bootLoader: grub +rootMountPoint: /tmp/calamares/grubcfg-test-3 + +branding: + bootloaderEntryName: generic +partitions: [] + diff --git a/src/modules/grubcfg/tests/3.job b/src/modules/grubcfg/tests/3.job new file mode 100644 index 000000000..7182deeb2 --- /dev/null +++ b/src/modules/grubcfg/tests/3.job @@ -0,0 +1,10 @@ +--- +overwrite: true +prefer_grub_d: true # But it doesn't exist +keepDistributor: false +defaults: + GRUB_TIMEOUT: 5 + GRUB_DEFAULT: "saved" + GRUB_DISABLE_SUBMENU: true + GRUB_TERMINAL_OUTPUT: "console" + GRUB_DISABLE_RECOVERY: true diff --git a/src/modules/grubcfg/tests/4.global b/src/modules/grubcfg/tests/4.global new file mode 100644 index 000000000..fe24ba6ca --- /dev/null +++ b/src/modules/grubcfg/tests/4.global @@ -0,0 +1,10 @@ +--- +bogus: true +firmwareType: bios +bootLoader: grub +rootMountPoint: /tmp/calamares/grubcfg-test-4 + +branding: + bootloaderEntryName: generic +partitions: [] + diff --git a/src/modules/grubcfg/tests/4.job b/src/modules/grubcfg/tests/4.job new file mode 100644 index 000000000..f8f30f21b --- /dev/null +++ b/src/modules/grubcfg/tests/4.job @@ -0,0 +1,10 @@ +--- +overwrite: true +prefer_grub_d: true +keepDistributor: false +defaults: + GRUB_TIMEOUT: 5 + GRUB_DEFAULT: "saved" + GRUB_DISABLE_SUBMENU: true + GRUB_TERMINAL_OUTPUT: "console" + GRUB_DISABLE_RECOVERY: true diff --git a/src/modules/grubcfg/tests/CMakeTests.txt b/src/modules/grubcfg/tests/CMakeTests.txt index 299fccf07..78a0f85ac 100644 --- a/src/modules/grubcfg/tests/CMakeTests.txt +++ b/src/modules/grubcfg/tests/CMakeTests.txt @@ -2,11 +2,15 @@ # - 2.global specifies /tmp/calamares as the rootMountPath, # so we end up editing files there. Create the directory # beforehand, so the test doesn't blow up. -set(_grub_root /tmp/calamares/etc/default) -set(_grub_file ${_grub_root}/bogus) add_test( NAME make-grubcfg-dirs - COMMAND ${CMAKE_COMMAND} -E make_directory ${_grub_root} + COMMAND ${CMAKE_COMMAND} -E make_directory + /tmp/calamares/grubcfg-test-2/etc/default + /tmp/calamares/grubcfg-test-3/etc/default + /tmp/calamares/grubcfg-test-4/etc/default/grub.d ) set_tests_properties(load-grubcfg-2 PROPERTIES DEPENDS make-grubcfg-dirs) +set_tests_properties(load-grubcfg-3 PROPERTIES DEPENDS make-grubcfg-dirs) +set_tests_properties(load-grubcfg-4 PROPERTIES DEPENDS make-grubcfg-dirs) +