1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-25 17:29:50 +00:00
cc65/test/readme.txt

60 lines
2.5 KiB
Plaintext
Raw Normal View History

2014-11-22 20:29:26 +00:00
This directory contains test code for automatic regression testing of the CC65
compiler and tools.
2014-11-22 20:29:26 +00:00
/asm - contains the assembler regression tests
/dasm - contains the disassembler regression tests
/val, /ref and /err generally contain the tests that are used to verify that the
compiler is working as expected (when the tests behave as described):
2014-11-22 20:29:26 +00:00
2020-07-22 13:31:39 +00:00
/val - The bulk of tests are contained here, individual tests should exit with
an exit code of EXIT_SUCCESS when they pass, or EXIT_FAILURE on error.
2014-11-22 20:29:26 +00:00
/standard - like the tests in /val, the tests must exit with EXIT_SUCCESS on
success. Unlike the tests in /val these are not compiled for every
combination of optimizer options, but instead always with -Osir and then
for each supported C-standard (C89, C99, CC65). The goal is to use these
to check for regressions in standard conformance of the compiler and the
library.
2020-07-22 13:31:39 +00:00
/ref - These tests produce output that must be compared with reference output.
2014-11-22 20:29:26 +00:00
/err - contains tests that MUST NOT compile
/todo and /misc generally contain the tests that fail because of known bugs:
2020-07-22 13:31:39 +00:00
/todo - These tests fail due to open compiler issues.
The makefile in this directory _expects_ the tests to fail, because of
that when an issue was fixed it will break the CI. The test should get
2020-09-23 21:51:37 +00:00
moved to /val in the PR fixing the issue, which will make CI pass again.
2020-07-22 13:31:39 +00:00
No changes to makefiles are required!
2014-11-22 20:29:26 +00:00
/misc - a few tests that need special care of some sort
2020-07-22 13:31:39 +00:00
Tests that (incorrectly) fail to compile and other tests that fail and
do NOT return an exit code are collected here. The makefile _expects_
those tests to fail, so when an issue is fixed it will break the CI.
When this happens, the PR fixing the issue should also "invert" the
2020-07-27 12:40:27 +00:00
failing condition in the makefile by adding a $(NOT) before the
2020-07-22 13:31:39 +00:00
offending line (or removing it when it is already there), which will
make the CI pass again. The test should then be moved elsewhere later,
which will require additional changes to the makefile(s).
2014-11-22 20:29:26 +00:00
2020-07-22 13:31:39 +00:00
To run the tests use "make" in this (top) directory, the makefile should exit
2014-11-23 11:18:19 +00:00
with no error.
2014-11-23 11:50:47 +00:00
2020-07-22 13:31:39 +00:00
When a test failed you can use "make continue" to run further tests.
2014-11-23 11:50:47 +00:00
--------------------------------------------------------------------------------
TODO:
- reduce usage of "common.h" to a minimum
- convert more tests from using reference output to returning an exit code