1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 # Base options for testing tools.
19 private import parser_util
21 redef class ToolContext
23 var opt_full
= new OptionBool("Process also imported modules", "--full")
25 var opt_output
= new OptionString("Output name (default is 'nitunit.xml')", "-o", "--output")
27 var opt_dir
= new OptionString("Working directory (default is '.nitunit')", "--dir")
29 var opt_noact
= new OptionBool("Does not compile and run tests", "--no-act")
31 var opt_nitc
= new OptionString("nitc compiler to use", "--nitc")
33 # Working directory for testing.
34 fun test_dir
: String do
35 var dir
= opt_dir
.value
36 if dir
== null then return ".nitunit"
40 # Search the `nitc` compiler to use
42 # If not `nitc` is suitable, then prints an error and quit.
45 var nitc
= opt_nitc
.value
47 if not nitc
.file_exists
then
48 fatal_error
(null, "error: cannot find `{nitc}` given by --nitc.")
56 if not nitc
.file_exists
then
57 fatal_error
(null, "error: cannot find `{nitc}` given by NITC.")
64 nitc
= nit_dir
/"bin/nitc"
65 if not nitc
.file_exists
then
66 fatal_error
(null, "Error: cannot find nitc. Set envvar NIT_DIR or NITC or use the --nitc option.")