87 Commits (1593ac04afd58b5434b0cb25be9c6761ad3dd60e)

Author SHA1 Message Date
David Chisnall 0b5f66393a Add test for #32. 9 years ago
David Chisnall 2417ec5806 Remove another unused build-breaking header. 9 years ago
David Chisnall ece31319b5 Remove an unused header include that was breaking the test build if
libobjc is not already installed.
9 years ago
David Chisnall e87b5c1503 Remove an assertion that was useful in debugging, but not actually
correct.

Instance variables are not normally zero-sized, but some are.  Examples
include zero-length arrays at the end of a class, and bitfields.

Fixes #30
Fixes #31
9 years ago
David Chisnall d1eb9ad91e Ensure that asserts in the tests are still run, even in a release build.
Fixes #29
9 years ago
David Chisnall 4fd27a066f When moving ivars to increase their alignment, make sure later ivars are
also moved.

Fixes #27
9 years ago
Niels Grewe 165f1e83bf Additional asserts
Assert that the offset of `isa` is 0 and the offset of `c_string` is
`sizeof(Class)`
9 years ago
Niels Grewe 8c79eb836c Test case for misaligned ivars. 9 years ago
David Chisnall 6df23377a0 Forcibly realign instance variables to take into account the padding
from the reference count.
9 years ago
David Chisnall 9a2f43ca7d Work around the fact that clang 3.4 and earlier emit broken metadata.
This is mostly important because Travis-CI uses an archaic version of
clang for the CI runs.
10 years ago
David Chisnall 8c35e72655 Add missing properties and don’t make a runtime-specific test conditional on OS. 10 years ago
David Chisnall 81ef7a9816 Don’t fail the test if we get more attributes than we expect.
Attribute lists are not null-terminated, so this would previously have gone off into memory that it was not meant to access.
10 years ago
Niels Grewe f264fd159d Fix a segfault on (s|g)etting ivars.
When we were trying to get or set an ivar on a class that had
no ivars defined, we'd dereference a NULL ivar list while
determining the ownership qualifier.
10 years ago
Niels Grewe a6e65cea04 Fix typo in test function 10 years ago
David Chisnall 4a59b2a986 Set up the new forwarding hook in the objc_msgSend test.
This is probably wrong, as we should be calling forward2 if forward3 is not set, but it makes the test pass for now.
10 years ago
David Chisnall 5cf6d6ac13 Make the message send test actually test thing things that it's supposed
to.
10 years ago
David Chisnall 8583fc7f61 Explicitly make char signed in the property introspection test. The C spec allows char to be either signed or unsigned. If it’s unsigned (as it is on ARM), then the test will fail with the wrong encoding. 10 years ago
David Chisnall e8e5f1e254 Try calling the IMP directly before calling it indirectly in the block-as-method test.
This makes debugging *much* easier!
10 years ago
David Chisnall 7eeffe9d09 Rewrite the block-to-imp code so that:
- We reuse the memory allocated for blocks
- We no longer have the same physical page mapped write and execute
10 years ago
David Chisnall 0a847e10be Tweak the message sending microbenchmark a bit so that it produces
output compatible with ministat.
10 years ago
David Chisnall 2777fea77a Enable correct behaviour with respect to ARC for objc_{g,s}etIvar(). 10 years ago
David Chisnall 57858add6e Silence warning in test. 10 years ago
David Chisnall dbdc26523c Fix the property introspection test some more. 10 years ago
David Chisnall 5c21e73f26 Fix the property introspection test. 10 years ago
David Chisnall b5e12e914c Make PropertyIntrospectionTest2 use arc.
Recent versions of clang object to weak properties in non-ARC mode.
10 years ago
David Chisnall 8b1d4fbcc2 TEST is a keyword in if() statements in recent CMake, rename a variable to avoid a conflict. 10 years ago
David Chisnall b581098831 Extend the objc_msgSend test to check for register saving.
Ensure, when we bounce out from the assembly into C and back again, that
the argument values are preserved.  Tests 10 integer and 10 floating
point arguments, which should cover all of the argument registers and at
least one stack slot on all supported platforms.
10 years ago
David Chisnall 3135e30d71 Fix ARC assignment of blocks.
We were not correctly checking that the object being assigned had a
reference count in the object header.  We're also now avoiding assigning
small objects to the weak reference table, which is quite important as
they have no destructor.

Fixes #12
10 years ago
David Chisnall 794ac2a3ee Fix copy and paste duplication of a line. 10 years ago
David Chisnall 6a0f909e06 Don't use an obsolete header in a test. 10 years ago
David Chisnall 53bc9f3892 Fix the size of run-time generated root classes.
The size of the new class with should be sizeof(Class), not sizeof(struct objc_class).
10 years ago
Niels Grewe c5ae4432e0 Be more lenient when accepting property encodings produced by clang. Cf. gnustep/libobjc2#5. 10 years ago
Niels Grewe 1ac152032a Merge branch 'master' into nil_exception
Conflicts:
	Test/CMakeLists.txt
10 years ago
Niels Grewe e121b34a9f Check other exception handlers that should/shouldn't catch nil. 10 years ago
Niels Grewe b2e7c50704 Fix throwing nil exceptions. 10 years ago
Niels Grewe cbacd87632 Add missing changes 11 years ago
Niels Grewe 44627f69e7 Also fix method_getArgumentType(). Add test case. 11 years ago
David Chisnall a74542ae4f Add a test that hidden classes are correctly deallocated and don’t leave the runtime in an undefined state. 11 years ago
theraven bd0728f393 Fix a bug in weak reference handling, where weak refers were being removed from
the table incorrectly, causing objects inserted at offsets due to hash
collisions to fail to be moved up and then fail to be found later.

Test by Eric Wasylishen!
12 years ago
theraven 2c81ee0428 Allow ARC to correctly handle references to self from blocks within -dealloc. 12 years ago
theraven 2d0ae6b79b Add test for associated objects. 12 years ago
theraven edeb64095d Disable the failing test until it can be fixed properly. 13 years ago
theraven 16bfdc8ee6 Align ivars to 16 byte boundaries when they are larger than a pointer. This is
currently overly defensive.

Add a test case for this realignment.
13 years ago
theraven 7fde81e9b2 Fix include to work with make. 13 years ago
theraven f50bc6cf33 Added support for tracing message sends to the runtime.
Currently x86-64 only.
13 years ago
theraven 3b9bbf296d Fixed property introspection test for the more-expressive strings that clang
now produces.

This test is now expected to fail with slightly older clang.
13 years ago
theraven c346ff1088 More header cleanups in the tests. 13 years ago
theraven 074fd1da56 Add path to Test.h to help Make builds. 13 years ago
theraven 193629d8a2 Fix a bug with blocks in ARC mode being incorrectly released. 13 years ago
theraven 57a9acb13c Some test case cleanups. 13 years ago