1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-06 11:50:51 -08:00
Commit graph

88 commits

Author SHA1 Message Date
Richard Brooksby
080d135eec Catch up merge from master sources.
Copied from Perforce
 Change: 189088
 ServerID: perforce.ravenbrook.com
2016-02-03 16:56:04 +00:00
Richard Brooksby
d4e54ba17e Backing out the introduction of mps_arena_configure. see <https://info.ravenbrook.com/mail/2016/01/15/11-56-45/0>.
Copied from Perforce
 Change: 189081
 ServerID: perforce.ravenbrook.com
2016-02-03 15:52:05 +00:00
Richard Brooksby
5dccd2e006 Catch-up merge from masters.
Copied from Perforce
 Change: 188928
 ServerID: perforce.ravenbrook.com
2016-01-20 11:04:09 +00:00
Gareth Rees
537af4b0dc Rename mps_key_arena_commit_limit and mps_key_arena_spare_commit_limit as mps_key_commit_limit and mps_key_spare_commit_limit respectively, as suggested by nb in review.
Copied from Perforce
 Change: 188286
 ServerID: perforce.ravenbrook.com
2015-09-08 16:21:27 +01:00
Gareth Rees
c2d2eacdb2 Catch-up merge from master sources to branch/2015-08-06/config.
Copied from Perforce
 Change: 188146
 ServerID: perforce.ravenbrook.com
2015-08-14 16:35:07 +01:00
Gareth Rees
365acce878 Merge branch/2015-08-10/arena-create into the master sources.
Copied from Perforce
 Change: 188144
 ServerID: perforce.ravenbrook.com
2015-08-14 10:57:06 +01:00
Gareth Rees
510c074051 Make -b ensures that mps.o gets rebuilt.
Copied from Perforce
 Change: 188132
 ServerID: perforce.ravenbrook.com
2015-08-11 12:01:53 +01:00
Gareth Rees
e84a0670d7 Test case function/228.c is passing.
Copied from Perforce
 Change: 188123
 ServerID: perforce.ravenbrook.com
2015-08-11 08:35:53 +01:00
Gareth Rees
7dee7f10ea New test case 231: create/configure arena with too-small commit limit.
Copied from Perforce
 Change: 188118
 ServerID: perforce.ravenbrook.com
2015-08-10 20:29:21 +01:00
Gareth Rees
8d2ed22908 Apply commit limit (and spare commit limit) during arena creation, to avoid exceeding the limit and then discovering that we've done so.
Add test case for arena hitting commit limit during creation.

Copied from Perforce
 Change: 188106
 ServerID: perforce.ravenbrook.com
2015-08-10 15:27:26 +01:00
Gareth Rees
511ec1c025 Catch-up merge from branch/2015-08-10/arena-create to branch/2015-08-06/config.
Copied from Perforce
 Change: 188104
 ServerID: perforce.ravenbrook.com
2015-08-10 12:49:36 +01:00
Gareth Rees
afb5ff33c1 Correct the test for too-small client arena sizes.
Add automated test case for client arenas with small sizes.

Copied from Perforce
 Change: 188099
 ServerID: perforce.ravenbrook.com
2015-08-10 11:41:58 +01:00
Gareth Rees
703c1ee5f5 New function mps_arena_configure provides keyword argument interface to changing the properties of an arena.
New keyword arguments MPS_KEY_ARENA_COMMIT_LIMIT and MPS_KEY_SPARE_ARENA_COMMIT_LIMIT can be passed to mps_arena_create_k or mps_arena_configure.
Deprecate mps_arena_commit_limit_set and mps_arena_spare_commit_limit_set.

Copied from Perforce
 Change: 188085
 ServerID: perforce.ravenbrook.com
2015-08-06 17:02:51 +01:00
Gareth Rees
1f95ffbe53 Tweak order of operations so that stack temporary doesn't keep many objects alive.
Copied from Perforce
 Change: 187953
 ServerID: perforce.ravenbrook.com
2015-06-16 10:44:09 +01:00
Gareth Rees
5960e2fd77 Testsets/conerr now passes.
Copied from Perforce
 Change: 187950
 ServerID: perforce.ravenbrook.com
2015-06-15 22:59:14 +01:00
Gareth Rees
e512989019 Argerr testset now passes.
Copied from Perforce
 Change: 187948
 ServerID: perforce.ravenbrook.com
2015-06-15 22:21:52 +01:00
Gareth Rees
24c0e9500f Arguments to the varargs function mps_pool_create must be cast, otherwise the default c promotion rules will result in a constant value lke 64 being protomoted to int (4 bytes) but decoded (wrongly) as size_t (8 bytes).
Copied from Perforce
 Change: 187943
 ServerID: perforce.ravenbrook.com
2015-06-15 19:34:45 +01:00
Gareth Rees
25d29beacb 100 pools are not enough to exceed the commit limit; try 1000 instead.
Copied from Perforce
 Change: 187941
 ServerID: perforce.ravenbrook.com
2015-06-15 18:26:36 +01:00
Gareth Rees
baae574206 Use chomp instead of chop for lines read in from file handles: the last line read from a file does not necessarily have a newline.
Copied from Perforce
 Change: 187937
 ServerID: perforce.ravenbrook.com
2015-06-15 17:20:04 +01:00
Gareth Rees
c96e19b7c8 Change file type to ktext so that qa reports the correct test name.
Copied from Perforce
 Change: 187936
 ServerID: perforce.ravenbrook.com
2015-06-15 17:05:39 +01:00
Gareth Rees
a7c1993c43 Minor documentation improvements.
Copied from Perforce
 Change: 187407
 ServerID: perforce.ravenbrook.com
2014-10-26 12:44:58 +00:00
Gareth Rees
9926492d9a Add a section to the guide explaining how to implement malloc and free.
Copied from Perforce
 Change: 187399
 ServerID: perforce.ravenbrook.com
2014-10-25 22:31:07 +01:00
Gareth Rees
eced8cbdad Mmqa test function/227.c now passes.
Update test README to mention which function to breakpoint.

Copied from Perforce
 Change: 187397
 ServerID: perforce.ravenbrook.com
2014-10-25 20:03:44 +01:00
Gareth Rees
d4b8907389 Assert if you try to create a pool using a format from another arena, a pool using a chain from another arena, or a root using a thread from another arena.
Copied from Perforce
 Change: 187268
 ServerID: perforce.ravenbrook.com
2014-10-14 22:21:43 +01:00
Gareth Rees
7db46bbb3f Check alignment of address given to poolfree.
Copied from Perforce
 Change: 187265
 ServerID: perforce.ravenbrook.com
2014-10-14 16:54:10 +01:00
Gareth Rees
c89ce2ba0b Get the mmqa conerr tests working:
* Make sure all the test build and run.
* Add output specifications to the passing tests.
* New testset/conerr runs them all.

Copied from Perforce
 Change: 187248
 ServerID: perforce.ravenbrook.com
2014-10-13 21:34:12 +01:00
Gareth Rees
4a13898542 Move <stdlib.h> from testlib.c to testlib.h, for the benefit of test cases that need to use malloc.
Copied from Perforce
 Change: 187247
 ServerID: perforce.ravenbrook.com
2014-10-13 21:33:42 +01:00
Gareth Rees
6367f5c299 Get the mmqa argerr tests working:
* Make sure all the test build and run.
* Add output specifications to the passing tests.
* New testset/argerr runs them all.

Copied from Perforce
 Change: 187245
 ServerID: perforce.ravenbrook.com
2014-10-13 18:35:11 +01:00
Gareth Rees
47110d4316 Mmqa test harness improvements:
* Don't compile for profiling (not needed at the moment)
* Compile with -Wno-unused -Wno-missing-prototypes on OS X (so that argerr/146.c and similar test cases will build).
* Output conclusion for the first failing result (in alphabetical order), rather than whatever comes out of the hash table first.
* Don't gather symbols from block comments, otherwise we can't specify results like "assertcond = mps_pool_o != NULL" as MMQA will think that mps_pool_o is a missing symbol.

Copied from Perforce
 Change: 187244
 ServerID: perforce.ravenbrook.com
2014-10-13 18:33:37 +01:00
Gareth Rees
42633ca624 Turn off the spare memory on the mvff pool so that it returns freed memory to the arena immediately.
Free the initial allocations so that the result determination is accurate.

Copied from Perforce
 Change: 187206
 ServerID: perforce.ravenbrook.com
2014-10-11 00:57:28 +01:00
Gareth Rees
34c8efce22 Specifying assertcond rather than assertline is likely to be more robust against code changes.
Copied from Perforce
 Change: 187203
 ServerID: perforce.ravenbrook.com
2014-10-10 22:55:48 +01:00
Gareth Rees
18a618cfe1 Need to take spare committed memory into account when checking that memory usage hasn't gone up after a collection.
Copied from Perforce
 Change: 187202
 ServerID: perforce.ravenbrook.com
2014-10-10 22:43:07 +01:00
Gareth Rees
f49ea829b9 In function/45.c, read from ambig[i] to prevent the compiler from optimizing away the array and so allowing p[i] to die.
In function/12.c, add a garbage collection to check that the allocation point protocol is being followed. Ensure there's an ambiguous reference to reserved objects before committin them.

Copied from Perforce
 Change: 187200
 ServerID: perforce.ravenbrook.com
2014-10-10 22:14:22 +01:00
Gareth Rees
28ceede8dc Job003495 is fixed, so mmqa test function/171.c now passes.
Reduce workload in function/171.c by a factor of 10 so that it completes in a reasonable amount of time.

Copied from Perforce
 Change: 187194
 ServerID: perforce.ravenbrook.com
2014-10-10 17:35:59 +01:00
Gareth Rees
92fceb127f Job003739 is fixed, so mmqa test function/51.c passes.
Copied from Perforce
 Change: 187192
 ServerID: perforce.ravenbrook.com
2014-10-10 17:21:36 +01:00
Gareth Rees
faf6789c71 Cast arguments to the correct type to avoid them being decoded incorrectly by the varargs interface.
Copied from Perforce
 Change: 187190
 ServerID: perforce.ravenbrook.com
2014-10-10 17:14:09 +01:00
Gareth Rees
712b443baf Make mmqa test suite compile and run on linux (specifically lii6ll).
Avoid compiler warnings about unused variables and bad casts.

Copied from Perforce
 Change: 187188
 ServerID: perforce.ravenbrook.com
2014-10-10 16:58:01 +01:00
Gareth Rees
f24a66c722 It's better to run from test directory -- otherwise testsets will have to be rewritten.
Copied from Perforce
 Change: 187187
 ServerID: perforce.ravenbrook.com
2014-10-10 16:56:34 +01:00
Gareth Rees
51209768de Explain how to run the mmqa test suite on any unix.
Remove unused variables and avoid pointer->int conversions, so that the MMQA tests will run on platform lii6gc.

Copied from Perforce
 Change: 187185
 ServerID: perforce.ravenbrook.com
2014-10-10 15:32:30 +01:00
Gareth Rees
1276a299d3 Update the record of passing test cases.
Copied from Perforce
 Change: 187183
 ServerID: perforce.ravenbrook.com
2014-10-10 14:07:13 +01:00
Gareth Rees
dddab0caf3 Fix mmqa test function/136.c:
* Turn off the spare memory on the MVFF pool so that it returns freed memory to the arena immediately.
* Allocate something in the MV pool initially so that the span and block pools have some capacity.
* Stop the test if there isn't room in the MVFF to allocate 2 big blocks.
* Change the test success criterion so that it passes on 64-bit.

Copied from Perforce
 Change: 187182
 ServerID: perforce.ravenbrook.com
2014-10-10 14:04:41 +01:00
Gareth Rees
db01741686 Turn off the spare memory on the mvff pool so that it returns freed memory to the arena immediately.
Copied from Perforce
 Change: 187177
 ServerID: perforce.ravenbrook.com
2014-10-10 12:30:17 +01:00
Gareth Rees
5cf7a4aa4e Turn off the hysteresis on the mvff pool so that we are testing the arena hysteresis only.
Copied from Perforce
 Change: 187175
 ServerID: perforce.ravenbrook.com
2014-10-10 12:08:12 +01:00
Gareth Rees
05ac242c57 If you try to create a client arena that's too small for the full complement of zones, return mps_res_memory instead of asserting.
If you try to create a virtual memory arena that's too small for the full complement of zones, round up the size to the minimum instead of asserting.

Copied from Perforce
 Change: 187164
 ServerID: perforce.ravenbrook.com
2014-10-08 22:16:56 +01:00
Gareth Rees
71c23bb40a Need to call easy_tramp to get correct assertion handling.
Copied from Perforce
 Change: 187154
 ServerID: perforce.ravenbrook.com
2014-10-07 22:16:11 +01:00
Gareth Rees
973518c36a No need to detect "mps assertion failed" -- assertions are captured via mmqa_assert_handler.
Copied from Perforce
 Change: 187153
 ServerID: perforce.ravenbrook.com
2014-10-07 22:15:36 +01:00
Gareth Rees
2108c78cc0 Fix test cases: mps_arena_class_vmnz no longer exists, use mps_arena_class_vm instead.
Copied from Perforce
 Change: 187152
 ServerID: perforce.ravenbrook.com
2014-10-07 22:14:22 +01:00
Gareth Rees
4f25a133fd Better place for test suite readme, also more convenient to run from top-level directory.
Copied from Perforce
 Change: 187111
 ServerID: perforce.ravenbrook.com
2014-10-02 11:09:03 +01:00
Gareth Rees
2a9e74ef82 Add test case for registering an unfinalizable object for finalization.
Copied from Perforce
 Change: 187110
 ServerID: perforce.ravenbrook.com
2014-10-02 11:08:37 +01:00
Gareth Rees
97fd4f2d85 Fix many mmqa test cases:
* Use commit limit to test exhaustion instead of trying to exhaust virtual memory.
* Use exact roots where possible so that we don't have to worry about local variables pinning down memory.
* Reduce sizes and iterations so that tests complete in a reasonable amount of time.
* Use "MVT" instead of "MV2".
Update the list of passing test cases.

Copied from Perforce
 Change: 186035
 ServerID: perforce.ravenbrook.com
2014-05-12 17:13:00 +01:00