1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-27 08:43:40 -07:00
Commit graph

159 commits

Author SHA1 Message Date
Gareth Rees
3fcea3ce5d New land functions landinsertsteal and landdeletesteal and unit test.
Use LandInsertSteal instead of arenaFreeLandInsertSteal.
Add regression test for job004102.

Copied from Perforce
 Change: 194861
2018-08-02 13:16:15 +01:00
Gareth Rees
04a1fd8d37 Introduce a count of the "system" pools (that is, those remaining when arenadestroy is called), so that arena classes can add new ones.
Copied from Perforce
 Change: 194812
2018-07-31 13:35:22 +01:00
Gareth Rees
147e3923b8 Avoid "unused variable _mps_wt" warning from gcc.
Copied from Perforce
 Change: 194776
2018-07-30 11:55:00 +01:00
Gareth Rees
a634c1405e Assertion is on the critical path, so conerr/59.c only passes in the cool variety.
Copied from Perforce
 Change: 194713
2018-07-23 11:14:54 +01:00
Gareth Rees
5c8e6891bb Update mmqa tests to cope with the removal of mv:
* Fix typo in argerr/41.c.
* Delete argerr/43.c and argerr/44.c: MVFF doesn't take a maximum size argument so we can't test for erroneous values of this argument.
* Fix assertion condition in conerr/59.c.
* In function/136.c, need to specify extend-by for second pool, now that it's an MVFF pool.
* function/224.c now passes (fragmentation is avoided because MVFF allocations can cross extent boundaries).

Copied from Perforce
 Change: 194712
2018-07-23 11:05:31 +01:00
Gareth Rees
74df9f7f35 Fix issues identified in review by gdr <https://info.ravenbrook.com/mail/2018/07/16/13-54-48/0/>
Copied from Perforce
 Change: 194674
2018-07-16 15:00:30 +01:00
Gareth Rees
08ca826368 Ensure that mmqa tests require either a pass or a specified failure.
Copied from Perforce
 Change: 194668
2018-07-16 12:57:42 +01:00
Gareth Rees
82a5471520 Use the functions comment(), report() and vreport() to ensure that assertion and error output is correctly formatted and the intention is clear.
Copied from Perforce
 Change: 194667
2018-07-16 12:51:41 +01:00
Gareth Rees
b68376aa8c Mmqa tests function/{7,21,22}.c now pass on 32-bit platforms.
MMQA tests function/{8,98}.c now pass on 64-bit platforms.

Copied from Perforce
 Change: 194599
2018-07-11 16:24:47 +01:00
Gareth Rees
9b4f5dfc0e Avoid "warning c4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)" from microsoft visual c.
Copied from Perforce
 Change: 194586
2018-07-11 13:13:17 +01:00
Gareth Rees
cd9e76a6de Check that traces with no condemned objects can be started and finished without error in each automatic pool class. regression test for job004086.
Copied from Perforce
 Change: 194475
2018-07-06 14:26:54 +01:00
Gareth Rees
e89f7b44c9 Ensure that the mmqa test case is compiled using the same variety as the mps library against which it is linked, in case it needs to inspect internal mps data structures.
Copied from Perforce
 Change: 194449
2018-07-05 15:57:33 +01:00
Gareth Rees
97f8625195 Fix issues identified in review https://info.ravenbrook.com/mail/2018/07/03/10-10-11/0/
Copied from Perforce
 Change: 194382
2018-07-03 13:04:21 +01:00
Gareth Rees
556bb96d41 Catch-up merge from master sources at changelevel 194268 to branch/2018-06-18/job004070.
Copied from Perforce
 Change: 194274
2018-06-28 14:31:02 +01:00
Gareth Rees
53a9a15276 Fix issues identified in review by dl.
Copied from Perforce
 Change: 194187
2018-06-26 11:39:45 +01:00
Gareth Rees
af4dceecd9 Test cases for errors in finalization.
Copied from Perforce
 Change: 194166
2018-06-26 09:01:46 +01:00
Gareth Rees
812d8abb4d No need for separate ams and lo formats.
Copied from Perforce
 Change: 194133
2018-06-23 21:01:15 +01:00
Gareth Rees
37a0381482 Make ams test for invalid references in the same way as the other pool classes. this also avoids fixing them in hot and rash varieties.
Copied from Perforce
 Change: 193924
2018-06-18 16:59:12 +01:00
Gareth Rees
175ce44d7b New mmqa test cases check that ams asserts on fixes to unaligned, unallocated, and out-of-bounds objects.
Copied from Perforce
 Change: 193921
2018-06-18 16:40:10 +01:00
Gareth Rees
169a3477b7 Awl asserts on fixes to out-of-bounds objects.
New MMQA test case conerr/65.c checks this.

Copied from Perforce
 Change: 193916
2018-06-18 16:29:03 +01:00
Gareth Rees
ab9f8a1a0d Lo asserts on fixes to out-of-bounds objects.
New MMQA test case conerr/64.c checks this.

Copied from Perforce
 Change: 193915
2018-06-18 16:22:16 +01:00
Gareth Rees
30abcd8531 Awl asserts on fixes to unallocated objects.
New MMQA test case conerr/63.c checks this.

Copied from Perforce
 Change: 193910
2018-06-18 15:46:26 +01:00
Gareth Rees
955ea13ee5 Lo asserts on fixes to unallocated objects.
New MMQA test case conerr/62.c checks this.

Copied from Perforce
 Change: 193909
2018-06-18 15:41:29 +01:00
Gareth Rees
ed44ee33c2 Awl asserts on fixes to unaligned exact references.
New MMQA test case conerr/61.c checks this.

Copied from Perforce
 Change: 193904
2018-06-18 15:23:58 +01:00
Gareth Rees
da6aec8bfb Lo asserts on fixes to unaligned exact references.
New MMQA test case conerr/60.c checks this.

Copied from Perforce
 Change: 193901
2018-06-18 15:05:30 +01:00
Gareth Rees
007904542d Use commentif to avoid "unexpected line in output:" from test runner.
Copied from Perforce
 Change: 193896
2018-06-18 14:47:28 +01:00
Gareth Rees
bdf27a99af Correct reason for why function/23.c does not pass.
Copied from Perforce
 Change: 193881
2018-06-18 13:18:28 +01:00
Gareth Rees
6590875176 Fix copy-paste error.
Copied from Perforce
 Change: 193880
2018-06-18 13:18:02 +01:00
Gareth Rees
307bc47730 Rename "mac os x" and "os x" to "macos", except for a few cases where for historical accuracy we want to continue to refer to the former name.
Copied from Perforce
 Change: 193821
2018-06-15 12:15:36 +01:00
Gareth Rees
9de5c1dfbe Avoid using deprecated function mps_fix and deprecated macro mps_fix in the test cases; use mps_fix12 instead.
Copied from Perforce
 Change: 193726
2018-06-13 13:59:14 +01:00
Gareth Rees
8e25464f59 Generate "assert_or_abort" after an abort.
Copied from Perforce
 Change: 192506
 ServerID: perforce.ravenbrook.com
2016-10-12 15:59:54 +01:00
Gareth Rees
7660d06b73 Some mmqa test cases assert on windows but abort with a segmentation fault on os x. use new test outcome assert_or_abort so that these pass on all platforms.
Copied from Perforce
 Change: 192503
 ServerID: perforce.ravenbrook.com
2016-10-12 15:47:10 +01:00
Gareth Rees
072f30009d Differentiate argerr/42.c and argerr/43.c so that the msvc incremental linker reliably updates the executable when we compile one and then the other.
Copied from Perforce
 Change: 192467
 ServerID: perforce.ravenbrook.com
2016-09-26 18:21:01 +01:00
Gareth Rees
a8ac974415 Avoid "conversion from 'size_t' to 'unsigned long', possible loss of data" warnings from microsoft visual c.
Copied from Perforce
 Change: 192462
 ServerID: perforce.ravenbrook.com
2016-09-26 16:59:35 +01:00
Gareth Rees
cc0d5a2b25 Avoid parentheses in parameters so that the test case passes on windows.
Copied from Perforce
 Change: 192457
 ServerID: perforce.ravenbrook.com
2016-09-26 16:17:38 +01:00
Gareth Rees
31db2e055c Platform alignment is 16 on w3i6mv, so use mps_pf_align to avoid alignment failure.
Copied from Perforce
 Change: 192456
 ServerID: perforce.ravenbrook.com
2016-09-26 16:13:39 +01:00
Gareth Rees
d44d50dfd0 The mmqa runset command now takes multiple test-sets.
Copied from Perforce
 Change: 192418
 ServerID: perforce.ravenbrook.com
2016-09-14 16:24:34 +01:00
Gareth Rees
2c5b947f9d Mmqa test suite now passes on freebsd.
Copied from Perforce
 Change: 192320
 ServerID: perforce.ravenbrook.com
2016-09-13 10:19:03 +01:00
Gareth Rees
3398d94ecf Avoid warnings from gcc 4.2 on freebsd.
Copied from Perforce
 Change: 192310
 ServerID: perforce.ravenbrook.com
2016-09-12 14:39:55 +01:00
Gareth Rees
42dbb3bd5a Need gmake on freebsd ("make" is bsd make).
Copied from Perforce
 Change: 192297
 ServerID: perforce.ravenbrook.com
2016-09-12 12:53:25 +01:00
Gareth Rees
eba3fdff52 New mmqa command debug compiles a test case and launches the debugger.
Copied from Perforce
 Change: 192290
 ServerID: perforce.ravenbrook.com
2016-09-12 12:26:40 +01:00
Gareth Rees
3f13486e08 Usability improvements for mmqa:
* -i option (MPS_INCLUDE_DIR) now defaults to the code directory relative to the test harness location.
* -p option (PLATFORM) is now a six-character platform code for consistency with the rest of the MPS.
* New -v option (VARIETY) for specifying cool/hot/rash.
* -l option (MPS_LINK_OBJ) now defaults to the appropriate object file for the platform and variety.
* The object file is built automatically.
* If $Id$ of a test file is longer than 70 characters, cut characters out of the middle rather than off the end.
* Eliminate obsolete option -prod (MPS_PRODUCT).
* Support for FreeBSD.

Copied from Perforce
 Change: 192285
 ServerID: perforce.ravenbrook.com
2016-09-12 11:55:36 +01:00
Gareth Rees
665d8197f0 Use area roots (instead of a thread root) to ensure that objects are finalized reliably even in the hot variety.
Copied from Perforce
 Change: 192235
 ServerID: perforce.ravenbrook.com
2016-09-08 10:57:07 +01:00
Gareth Rees
419ba15d42 Change 192148 (the fix for job004017) caused the hot variety to compile out assertions on the critical path in manual-allocation-bound programs, which caused various mmqa test cases to fail in the hot variety. move these failing tests to the coolonly testset.
Copied from Perforce
 Change: 192234
 ServerID: perforce.ravenbrook.com
2016-09-08 10:55:59 +01:00
Gareth Rees
c2e44cb103 The awl pool contains only weak references to objects that died, so the mps may be able to deduce (via its summary) that it does not need to be condemned, even to collect the world.
Copied from Perforce
 Change: 192226
 ServerID: perforce.ravenbrook.com
2016-09-07 10:20:39 +01:00
Gareth Rees
e63d701374 Job003889 was fixed, so conerr/12.c passes.
Copied from Perforce
 Change: 192207
 ServerID: perforce.ravenbrook.com
2016-09-05 23:45:20 +01:00
Gareth Rees
77882461af Memoryerror is only implemented on windows, so test for abort instead.
Copied from Perforce
 Change: 191575
 ServerID: perforce.ravenbrook.com
2016-04-22 17:17:53 +01:00
Gareth Rees
7e0675d595 Fix mmqa function test cases so that they run on windows. in detail:
1. On w3i6mv, int and long are 32 bits, so these types can't be used to hold a size_t or an mps_word_t. See 26.c, 38.c, 47.c, 66.c, 123.c, 136.c, 164.c, 165.c, 200.c, 203.c, 204.c, 205.c, 206.c, 207.c, 215.c, 223.c.
2. The Windows command line doesn't cope with parentheses. See 170.c.
3. The natural platform alignment is 16 bytes on w3i6mv, so allocations into pools using the default alignment need to be rounded up. See 21.c, 22.c, 203.c, 204.c, 205.c.
4. Microsoft Visual C/C++ is fussy about signed/unsigned comparison. See 226.c.
5. windows.h defines a SIZE macro so you can't use it as a parameter. See 232.c.

Copied from Perforce
 Change: 191569
 ServerID: perforce.ravenbrook.com
2016-04-22 15:44:58 +01:00
Gareth Rees
a3b9e83fee Get the mmqa test system working on windows. in detail:
1. Document how to run it on Windows from a Cygwin shell.
2. Ignore trailing spaces when analyzing test output.
3. Use the directory separator "/" since we're running under Cygwin.
4. No need for cat.exe, strings.exe, or tee.exe (these are supplied by Cygwin).
5. Microsoft Visual C/C++ needs /D_CRT_SECURE_NO_WARNINGS to avoid a warning about scanf.
6. The Microsoft Visual C/C++ linker no longer takes the options /debugtype:both or /debug:full. Replace with /debug.
7. Remove /pdb:none option (we want the PDB so that we can debug the result).
8. windows.h defines an UNALIGNED macro, so need to #undef it.
9. The long int type is 32 bits on 64-bit Windows, so we need size_t instead.
10. The values in the LPEXCEPTION_RECORD structure have type ULONG_PTR.
11. Test cases are expecting access violations to report abort=true, but on Windows they are caught by the exception handler, so report abort=true in this case.
12. mpsw3.h has gone, but we do need mpswin.h.

Fix some of the test cases:
1. Avoid compiler warning about overflowed multiplication in argerr/153.c.
2. In conerr/2.c, conerr/8.c and conerr/13.c, malloc enough space so that the signature check doesn't cause an access violation.
3. In conerr/25.c, allocate an object whose size is aligned to the platform alignment, which is 16 bytes on w3i6mv.
4. In connerr/18.c, conerr/53.c and conerr/54.c, update the location and text of the expected assertions.

Copied from Perforce
 Change: 191564
 ServerID: perforce.ravenbrook.com
2016-04-22 15:00:27 +01:00
Gareth Rees
11a5f2bf29 Arenacompact can be called via tracedestroyinit too.
Copied from Perforce
 Change: 190949
 ServerID: perforce.ravenbrook.com
2016-04-11 19:47:52 +01:00