summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hscript/script.cc2
-rw-r--r--tests/spec/validator.rb17
2 files changed, 18 insertions, 1 deletions
diff --git a/hscript/script.cc b/hscript/script.cc
index a07af15..a8101dc 100644
--- a/hscript/script.cc
+++ b/hscript/script.cc
@@ -93,7 +93,7 @@ struct Script::ScriptPrivate {
err_str += std::to_string(this->network->lineno());
if(errors) *errors += 1;
output_error("installfile:" + std::to_string(lineno),
- "'network' key has already been specified",
+ "duplicate value for key 'network'",
err_str);
return false;
}
diff --git a/tests/spec/validator.rb b/tests/spec/validator.rb
index 69fe0d1..bd53853 100644
--- a/tests/spec/validator.rb
+++ b/tests/spec/validator.rb
@@ -77,5 +77,22 @@ RSpec.describe 'HorizonScript Validation Utility', :type => :aruba do
expect(last_command_started).to have_output(/error: .*mount.*/)
end
end
+ context "unique keys" do
+ it "fails with a duplicate 'network' key" do
+ use_fixture '0018-duplicate-network.installfile'
+ run_validate
+ expect(last_command_started).to have_output(/error: .*duplicate.*network/)
+ end
+ it "fails with a duplicate 'hostname' key" do
+ use_fixture '0019-duplicate-hostname.installfile'
+ run_validate
+ expect(last_command_started).to have_output(/error: .*duplicate.*hostname/)
+ end
+ it "fails with a duplicate 'rootpw' key" do
+ use_fixture '0020-duplicate-rootpw.installfile'
+ run_validate
+ expect(last_command_started).to have_output(/error: .*duplicate.*rootpw/)
+ end
+ end
end
end