diff --git a/lib/grntest/executors/base-executor.rb b/lib/grntest/executors/base-executor.rb index 8eeb8b7..f4f303f 100644 --- a/lib/grntest/executors/base-executor.rb +++ b/lib/grntest/executors/base-executor.rb @@ -562,6 +562,23 @@ def execute_directive_require_env(line, content, options) end end + def os + status_response["os"] + end + + def execute_directive_require_os(line, content, options) + required_os, = options + if required_os.start_with?("!") + if required_os[1..-1] == os + omit("require OS: #{required_os} (#{os})") + end + else + unless required_os == os + omit("require OS: #{required_os} (#{os})") + end + end + end + def execute_directive(parser, line, content) command, *options = Shellwords.split(content) case command @@ -627,6 +644,8 @@ def execute_directive(parser, line, content) execute_directive_finish_benchmark(line, content, options) when "require-env" execute_directive_require_env(line, content, options) + when "require-os" + execute_directive_require_os(line, content, options) else log_input(line) log_error("#|e| unknown directive: <#{command}>")