36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
-
+
+
+
+
+
-
+
+
+
+
|
TEST(@"-[:signatureWithObjCTypes:] #1",
(ms = [OFMethodSignature signatureWithObjCTypes:
"i28@0:8S16*20"]) && [ms numberOfArguments] == 4 &&
strcmp([ms methodReturnType], "i") == 0 &&
strcmp([ms argumentTypeAtIndex: 0], "@") == 0 &&
strcmp([ms argumentTypeAtIndex: 1], ":") == 0 &&
strcmp([ms argumentTypeAtIndex: 2], "S") == 0 &&
strcmp([ms argumentTypeAtIndex: 3], "*") == 0)
strcmp([ms argumentTypeAtIndex: 3], "*") == 0 &&
[ms frameLength] == 28 && [ms argumentOffsetAtIndex: 0] == 0 &&
[ms argumentOffsetAtIndex: 1] == 8 &&
[ms argumentOffsetAtIndex: 2] == 16 &&
[ms argumentOffsetAtIndex: 3] == 20)
TEST(@"-[signatureWithObjCTypes:] #2",
(ms = [OFMethodSignature signatureWithObjCTypes:
"{s0=csi(u1={s2=iii{s3=(u4=ic^v*)}})}24@0:8"
"^{s0=csi(u1={s2=iii{s3=(u4=ic^v*)}})}16"]) &&
[ms numberOfArguments] == 3 &&
strcmp([ms methodReturnType],
"{s0=csi(u1={s2=iii{s3=(u4=ic^v*)}})}") == 0 &&
strcmp([ms argumentTypeAtIndex: 0], "@") == 0 &&
strcmp([ms argumentTypeAtIndex: 1], ":") == 0 &&
strcmp([ms argumentTypeAtIndex: 2],
"^{s0=csi(u1={s2=iii{s3=(u4=ic^v*)}})}") == 0)
"^{s0=csi(u1={s2=iii{s3=(u4=ic^v*)}})}") == 0 &&
[ms frameLength] == 24 && [ms argumentOffsetAtIndex: 0] == 0 &&
[ms argumentOffsetAtIndex: 1] == 8 &&
[ms argumentOffsetAtIndex: 2] == 16)
EXPECT_EXCEPTION(@"-[signatureWithObjCTypes:] #3",
OFInvalidFormatException,
[OFMethodSignature signatureWithObjCTypes: "{ii"])
EXPECT_EXCEPTION(@"-[signatureWithObjCTypes:] #4",
OFInvalidFormatException,
|