From 9c9e400b68f9cfb2270434fb8a16cc0df906ab8b Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Sun, 24 May 2020 20:35:14 -0500 Subject: hscript: Implement 'svcenable' key and tests --- tests/fixtures/0229-svcenable-basic.installfile | 6 ++++++ tests/fixtures/0230-svcenable-duplicate.installfile | 7 +++++++ tests/fixtures/0231-svcenable-invalid.installfile | 6 ++++++ tests/spec/simulator_spec.rb | 7 +++++++ tests/spec/validator_spec.rb | 18 ++++++++++++++++++ 5 files changed, 44 insertions(+) create mode 100644 tests/fixtures/0229-svcenable-basic.installfile create mode 100644 tests/fixtures/0230-svcenable-duplicate.installfile create mode 100644 tests/fixtures/0231-svcenable-invalid.installfile (limited to 'tests') diff --git a/tests/fixtures/0229-svcenable-basic.installfile b/tests/fixtures/0229-svcenable-basic.installfile new file mode 100644 index 0000000..69e18d4 --- /dev/null +++ b/tests/fixtures/0229-svcenable-basic.installfile @@ -0,0 +1,6 @@ +network false +hostname test.machine +pkginstall adelie-base +rootpw $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/ +mount /dev/sda1 / +svcenable sshd diff --git a/tests/fixtures/0230-svcenable-duplicate.installfile b/tests/fixtures/0230-svcenable-duplicate.installfile new file mode 100644 index 0000000..bbd3401 --- /dev/null +++ b/tests/fixtures/0230-svcenable-duplicate.installfile @@ -0,0 +1,7 @@ +network false +hostname test.machine +pkginstall adelie-base +rootpw $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/ +mount /dev/sda1 / +svcenable sshd +svcenable sshd diff --git a/tests/fixtures/0231-svcenable-invalid.installfile b/tests/fixtures/0231-svcenable-invalid.installfile new file mode 100644 index 0000000..f4fde97 --- /dev/null +++ b/tests/fixtures/0231-svcenable-invalid.installfile @@ -0,0 +1,6 @@ +network false +hostname test.machine +pkginstall adelie-base +rootpw $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/ +mount /dev/sda1 / +svcenable ../hax/illegal diff --git a/tests/spec/simulator_spec.rb b/tests/spec/simulator_spec.rb index ab77782..2e63009 100644 --- a/tests/spec/simulator_spec.rb +++ b/tests/spec/simulator_spec.rb @@ -274,6 +274,13 @@ printf '%s\\t%s\\t%s\\t%s\\t0\\t0\\n' /dev/gwyn/source /usr/src auto noatime >> expect(last_command_started.stdout).to include("cp /etc/apk/keys/packages@adelielinux.org.pub /target/etc/apk/keys/packages@adelielinux.org.pub") end end + context "simulating 'svcenable' execution" do + it "enables the service correctly" do + use_fixture '0229-svcenable-basic.installfile' + run_simulate + expect(last_command_started.stdout).to include("ln -s /etc/init.d/sshd /target/etc/runlevels/default/sshd") + end + end context "simulating 'pkginstall' execution" do # Runner.Execute.pkginstall.APKDB it "initialises the APK database" do diff --git a/tests/spec/validator_spec.rb b/tests/spec/validator_spec.rb index 365a8f3..0bd3516 100644 --- a/tests/spec/validator_spec.rb +++ b/tests/spec/validator_spec.rb @@ -669,6 +669,24 @@ RSpec.describe 'HorizonScript validation', :type => :aruba do expect(last_command_started).to have_output(/warning: .*pkginstall.*already/) end end + context "for 'svcenable' key" do + it "succeeds with a basic service" do + use_fixture '0229-svcenable-basic.installfile' + run_validate + expect(last_command_started).to have_output(PARSER_SUCCESS) + expect(last_command_started).to have_output(VALIDATOR_SUCCESS) + end + it "warns when a service is specified twice" do + use_fixture '0230-svcenable-duplicate.installfile' + run_validate + expect(last_command_started).to have_output(/warning: .*svcenable.*already/) + end + it "fails when an invalid service name is specified" do + use_fixture '0231-svcenable-invalid.installfile' + run_validate + expect(last_command_started).to have_output(/error: .*svcenable.*invalid/) + end + end context "for 'diskid' key" do it "succeeds with basic disk identification" do use_fixture '0076-diskid-basic.installfile' -- cgit v1.2.3-60-g2f50