You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[NFC][Fortran/gfortran] Add static test configuration files (#84)
[NFC][Fortran/gfortran] Add static test configuration files
Add the static test configuration files. This is the first in a series of
commits to switch to using a static test configuration for the gfortran tests.
The README has been updated to describe the changes that will eventually land
and that it is a work-in-progress.
| `<kind>` | Must be one of 'preprocess', 'assemble', 'compile', 'link' or 'run'.
157
+
| `<sources>` | A space separated list of sources files that comprise the test. The first file is the "main" file. The rest of the files must be specified in program compilation order
158
+
| `<xfail>` | If present, must be 'xfail' which indicates that the test is expected to trigger a compile-time or runtime error.
159
+
| `<options>` | A space separated list of options to be passed to the compiler when building the test.
160
+
| `<enabled-on>` | A space-separated list of targets on which the test is enabled. Each element of the list will be a regular expression that is expected to match an LLVM target triple. If no targets are provided, the test is enabled on all targets.
161
+
| `<disabled-on>`| A space-separated list of targets on which the test is disabled. Each element of the list will be a regular expression that is expected to match an LLVM target triple.
162
+
163
+
The test `kind`'s generally reflect what is being tested. For instance,
164
+
`preprocess` tests only run the preprocessor, `assemble` tests generate assembly
165
+
but no object code, the `compile` tests generate object code but do not invoke
166
+
the linker while the `link` tests do invoke the linker. The `run` tests are
167
+
"end-to-end" in that the code is compiled, linked and executed. These tests
168
+
generally examine the output of the execution to ensure that the behavior of the
169
+
generated executable is as expected.
170
+
171
+
The test files should be kept in sync with gfortran. This has to be done
172
+
manually. When performing this update, the test configuration files must be
173
+
regenerated. This can be done by running `update-test-config.py` in the root of
174
+
the test suite. The `-h` switch can be provided to the script for additional
175
+
options.
134
176
135
177
The test files in `regression` and `torture`*must not* be modified.
136
178
@@ -168,6 +210,11 @@ are currently not implemented which results in a parse error (as opposed to the
168
210
triggering of a "not-yet-implemented" assertion) which is also deemed an "error",
169
211
thereby causing the test to pass.
170
212
213
+
### `dg-warning` directive ###
214
+
215
+
Currently, the `dg-warning` directive is ignored. It ought to be possible to
216
+
treat in a manner similar to `dg-error`.
217
+
171
218
#### `scan-tree-dump` directive ####
172
219
173
220
In the _compile_ tests, the `dg-final { scan-tree-dump* ...}` directives are
@@ -182,6 +229,10 @@ of GCC to an equivalent representation in LLVM IR.
182
229
183
230
### `target` directive ###
184
231
232
+
_*NOTE*: With the static test configuration, the "top-level" `target` directives
233
+
are correctly handled. This section will be updated when the switch to the
234
+
static test configurations is completed._
235
+
185
236
The `target` directive is used to restrict tests to run on certain
186
237
platforms/systems. Currently, the target directive is ignored entirely and the
187
238
tests are always run. Currently, the gfortran tests are only enabled on *nix on
0 commit comments