Use pickled data compatible with Python 2 for testing protocols 0-2.
This commit is contained in:
commit
d362c21264
|
@ -144,21 +144,22 @@ def create_dynamic_class(name, bases):
|
|||
# the object returned by create_data().
|
||||
|
||||
DATA0 = (
|
||||
b'(lp0\nL0L\naL1L\naF2.0\nac'
|
||||
b'builtins\ncomplex\n'
|
||||
b'p1\n(F3.0\nF0.0\ntp2\nRp'
|
||||
b'3\naL1L\naL-1L\naL255L\naL-'
|
||||
b'255L\naL-256L\naL65535L\na'
|
||||
b'L-65535L\naL-65536L\naL2'
|
||||
b'147483647L\naL-2147483'
|
||||
b'647L\naL-2147483648L\na('
|
||||
b'Vabc\np4\ng4\nccopyreg'
|
||||
b'\n_reconstructor\np5\n('
|
||||
b'c__main__\nC\np6\ncbu'
|
||||
b'iltins\nobject\np7\nNt'
|
||||
b'p8\nRp9\n(dp10\nVfoo\np1'
|
||||
b'1\nL1L\nsVbar\np12\nL2L\nsb'
|
||||
b'g9\ntp13\nag13\naL5L\na.'
|
||||
b'(lp0\nL0L\naL1L\naF2.0\n'
|
||||
b'ac__builtin__\ncomple'
|
||||
b'x\np1\n(F3.0\nF0.0\ntp2\n'
|
||||
b'Rp3\naL1L\naL-1L\naL255'
|
||||
b'L\naL-255L\naL-256L\naL'
|
||||
b'65535L\naL-65535L\naL-'
|
||||
b'65536L\naL2147483647L'
|
||||
b'\naL-2147483647L\naL-2'
|
||||
b'147483648L\na(Vabc\np4'
|
||||
b'\ng4\nccopy_reg\n_recon'
|
||||
b'structor\np5\n(c__main'
|
||||
b'__\nC\np6\nc__builtin__'
|
||||
b'\nobject\np7\nNtp8\nRp9\n'
|
||||
b'(dp10\nVfoo\np11\nL1L\ns'
|
||||
b'Vbar\np12\nL2L\nsbg9\ntp'
|
||||
b'13\nag13\naL5L\na.'
|
||||
)
|
||||
|
||||
# Disassembly of DATA0
|
||||
|
@ -172,88 +173,88 @@ DATA0_DIS = """\
|
|||
14: a APPEND
|
||||
15: F FLOAT 2.0
|
||||
20: a APPEND
|
||||
21: c GLOBAL 'builtins complex'
|
||||
39: p PUT 1
|
||||
42: ( MARK
|
||||
43: F FLOAT 3.0
|
||||
48: F FLOAT 0.0
|
||||
53: t TUPLE (MARK at 42)
|
||||
54: p PUT 2
|
||||
57: R REDUCE
|
||||
58: p PUT 3
|
||||
61: a APPEND
|
||||
62: L LONG 1
|
||||
66: a APPEND
|
||||
67: L LONG -1
|
||||
72: a APPEND
|
||||
73: L LONG 255
|
||||
79: a APPEND
|
||||
80: L LONG -255
|
||||
87: a APPEND
|
||||
88: L LONG -256
|
||||
95: a APPEND
|
||||
96: L LONG 65535
|
||||
104: a APPEND
|
||||
105: L LONG -65535
|
||||
114: a APPEND
|
||||
115: L LONG -65536
|
||||
124: a APPEND
|
||||
125: L LONG 2147483647
|
||||
138: a APPEND
|
||||
139: L LONG -2147483647
|
||||
153: a APPEND
|
||||
154: L LONG -2147483648
|
||||
168: a APPEND
|
||||
169: ( MARK
|
||||
170: V UNICODE 'abc'
|
||||
175: p PUT 4
|
||||
178: g GET 4
|
||||
181: c GLOBAL 'copyreg _reconstructor'
|
||||
205: p PUT 5
|
||||
208: ( MARK
|
||||
209: c GLOBAL '__main__ C'
|
||||
221: p PUT 6
|
||||
224: c GLOBAL 'builtins object'
|
||||
241: p PUT 7
|
||||
244: N NONE
|
||||
245: t TUPLE (MARK at 208)
|
||||
246: p PUT 8
|
||||
249: R REDUCE
|
||||
250: p PUT 9
|
||||
253: ( MARK
|
||||
254: d DICT (MARK at 253)
|
||||
255: p PUT 10
|
||||
259: V UNICODE 'foo'
|
||||
264: p PUT 11
|
||||
268: L LONG 1
|
||||
272: s SETITEM
|
||||
273: V UNICODE 'bar'
|
||||
278: p PUT 12
|
||||
282: L LONG 2
|
||||
286: s SETITEM
|
||||
287: b BUILD
|
||||
288: g GET 9
|
||||
291: t TUPLE (MARK at 169)
|
||||
292: p PUT 13
|
||||
296: a APPEND
|
||||
297: g GET 13
|
||||
301: a APPEND
|
||||
302: L LONG 5
|
||||
306: a APPEND
|
||||
307: . STOP
|
||||
21: c GLOBAL '__builtin__ complex'
|
||||
42: p PUT 1
|
||||
45: ( MARK
|
||||
46: F FLOAT 3.0
|
||||
51: F FLOAT 0.0
|
||||
56: t TUPLE (MARK at 45)
|
||||
57: p PUT 2
|
||||
60: R REDUCE
|
||||
61: p PUT 3
|
||||
64: a APPEND
|
||||
65: L LONG 1
|
||||
69: a APPEND
|
||||
70: L LONG -1
|
||||
75: a APPEND
|
||||
76: L LONG 255
|
||||
82: a APPEND
|
||||
83: L LONG -255
|
||||
90: a APPEND
|
||||
91: L LONG -256
|
||||
98: a APPEND
|
||||
99: L LONG 65535
|
||||
107: a APPEND
|
||||
108: L LONG -65535
|
||||
117: a APPEND
|
||||
118: L LONG -65536
|
||||
127: a APPEND
|
||||
128: L LONG 2147483647
|
||||
141: a APPEND
|
||||
142: L LONG -2147483647
|
||||
156: a APPEND
|
||||
157: L LONG -2147483648
|
||||
171: a APPEND
|
||||
172: ( MARK
|
||||
173: V UNICODE 'abc'
|
||||
178: p PUT 4
|
||||
181: g GET 4
|
||||
184: c GLOBAL 'copy_reg _reconstructor'
|
||||
209: p PUT 5
|
||||
212: ( MARK
|
||||
213: c GLOBAL '__main__ C'
|
||||
225: p PUT 6
|
||||
228: c GLOBAL '__builtin__ object'
|
||||
248: p PUT 7
|
||||
251: N NONE
|
||||
252: t TUPLE (MARK at 212)
|
||||
253: p PUT 8
|
||||
256: R REDUCE
|
||||
257: p PUT 9
|
||||
260: ( MARK
|
||||
261: d DICT (MARK at 260)
|
||||
262: p PUT 10
|
||||
266: V UNICODE 'foo'
|
||||
271: p PUT 11
|
||||
275: L LONG 1
|
||||
279: s SETITEM
|
||||
280: V UNICODE 'bar'
|
||||
285: p PUT 12
|
||||
289: L LONG 2
|
||||
293: s SETITEM
|
||||
294: b BUILD
|
||||
295: g GET 9
|
||||
298: t TUPLE (MARK at 172)
|
||||
299: p PUT 13
|
||||
303: a APPEND
|
||||
304: g GET 13
|
||||
308: a APPEND
|
||||
309: L LONG 5
|
||||
313: a APPEND
|
||||
314: . STOP
|
||||
highest protocol among opcodes = 0
|
||||
"""
|
||||
|
||||
DATA1 = (
|
||||
b']q\x00(K\x00K\x01G@\x00\x00\x00\x00\x00\x00\x00c'
|
||||
b'builtins\ncomplex\nq\x01'
|
||||
b']q\x00(K\x00K\x01G@\x00\x00\x00\x00\x00\x00\x00c__'
|
||||
b'builtin__\ncomplex\nq\x01'
|
||||
b'(G@\x08\x00\x00\x00\x00\x00\x00G\x00\x00\x00\x00\x00\x00\x00\x00t'
|
||||
b'q\x02Rq\x03K\x01J\xff\xff\xff\xffK\xffJ\x01\xff\xff\xffJ'
|
||||
b'\x00\xff\xff\xffM\xff\xffJ\x01\x00\xff\xffJ\x00\x00\xff\xffJ\xff\xff'
|
||||
b'\xff\x7fJ\x01\x00\x00\x80J\x00\x00\x00\x80(X\x03\x00\x00\x00ab'
|
||||
b'cq\x04h\x04ccopyreg\n_reco'
|
||||
b'cq\x04h\x04ccopy_reg\n_reco'
|
||||
b'nstructor\nq\x05(c__main'
|
||||
b'__\nC\nq\x06cbuiltins\n'
|
||||
b'__\nC\nq\x06c__builtin__\n'
|
||||
b'object\nq\x07Ntq\x08Rq\t}q\n('
|
||||
b'X\x03\x00\x00\x00fooq\x0bK\x01X\x03\x00\x00\x00bar'
|
||||
b'q\x0cK\x02ubh\ttq\rh\rK\x05e.'
|
||||
|
@ -267,66 +268,66 @@ DATA1_DIS = """\
|
|||
4: K BININT1 0
|
||||
6: K BININT1 1
|
||||
8: G BINFLOAT 2.0
|
||||
17: c GLOBAL 'builtins complex'
|
||||
35: q BINPUT 1
|
||||
37: ( MARK
|
||||
38: G BINFLOAT 3.0
|
||||
47: G BINFLOAT 0.0
|
||||
56: t TUPLE (MARK at 37)
|
||||
57: q BINPUT 2
|
||||
59: R REDUCE
|
||||
60: q BINPUT 3
|
||||
62: K BININT1 1
|
||||
64: J BININT -1
|
||||
69: K BININT1 255
|
||||
71: J BININT -255
|
||||
76: J BININT -256
|
||||
81: M BININT2 65535
|
||||
84: J BININT -65535
|
||||
89: J BININT -65536
|
||||
94: J BININT 2147483647
|
||||
99: J BININT -2147483647
|
||||
104: J BININT -2147483648
|
||||
109: ( MARK
|
||||
110: X BINUNICODE 'abc'
|
||||
118: q BINPUT 4
|
||||
120: h BINGET 4
|
||||
122: c GLOBAL 'copyreg _reconstructor'
|
||||
146: q BINPUT 5
|
||||
148: ( MARK
|
||||
149: c GLOBAL '__main__ C'
|
||||
161: q BINPUT 6
|
||||
163: c GLOBAL 'builtins object'
|
||||
180: q BINPUT 7
|
||||
182: N NONE
|
||||
183: t TUPLE (MARK at 148)
|
||||
184: q BINPUT 8
|
||||
186: R REDUCE
|
||||
187: q BINPUT 9
|
||||
189: } EMPTY_DICT
|
||||
190: q BINPUT 10
|
||||
192: ( MARK
|
||||
193: X BINUNICODE 'foo'
|
||||
201: q BINPUT 11
|
||||
203: K BININT1 1
|
||||
205: X BINUNICODE 'bar'
|
||||
213: q BINPUT 12
|
||||
215: K BININT1 2
|
||||
217: u SETITEMS (MARK at 192)
|
||||
218: b BUILD
|
||||
219: h BINGET 9
|
||||
221: t TUPLE (MARK at 109)
|
||||
222: q BINPUT 13
|
||||
224: h BINGET 13
|
||||
226: K BININT1 5
|
||||
228: e APPENDS (MARK at 3)
|
||||
229: . STOP
|
||||
17: c GLOBAL '__builtin__ complex'
|
||||
38: q BINPUT 1
|
||||
40: ( MARK
|
||||
41: G BINFLOAT 3.0
|
||||
50: G BINFLOAT 0.0
|
||||
59: t TUPLE (MARK at 40)
|
||||
60: q BINPUT 2
|
||||
62: R REDUCE
|
||||
63: q BINPUT 3
|
||||
65: K BININT1 1
|
||||
67: J BININT -1
|
||||
72: K BININT1 255
|
||||
74: J BININT -255
|
||||
79: J BININT -256
|
||||
84: M BININT2 65535
|
||||
87: J BININT -65535
|
||||
92: J BININT -65536
|
||||
97: J BININT 2147483647
|
||||
102: J BININT -2147483647
|
||||
107: J BININT -2147483648
|
||||
112: ( MARK
|
||||
113: X BINUNICODE 'abc'
|
||||
121: q BINPUT 4
|
||||
123: h BINGET 4
|
||||
125: c GLOBAL 'copy_reg _reconstructor'
|
||||
150: q BINPUT 5
|
||||
152: ( MARK
|
||||
153: c GLOBAL '__main__ C'
|
||||
165: q BINPUT 6
|
||||
167: c GLOBAL '__builtin__ object'
|
||||
187: q BINPUT 7
|
||||
189: N NONE
|
||||
190: t TUPLE (MARK at 152)
|
||||
191: q BINPUT 8
|
||||
193: R REDUCE
|
||||
194: q BINPUT 9
|
||||
196: } EMPTY_DICT
|
||||
197: q BINPUT 10
|
||||
199: ( MARK
|
||||
200: X BINUNICODE 'foo'
|
||||
208: q BINPUT 11
|
||||
210: K BININT1 1
|
||||
212: X BINUNICODE 'bar'
|
||||
220: q BINPUT 12
|
||||
222: K BININT1 2
|
||||
224: u SETITEMS (MARK at 199)
|
||||
225: b BUILD
|
||||
226: h BINGET 9
|
||||
228: t TUPLE (MARK at 112)
|
||||
229: q BINPUT 13
|
||||
231: h BINGET 13
|
||||
233: K BININT1 5
|
||||
235: e APPENDS (MARK at 3)
|
||||
236: . STOP
|
||||
highest protocol among opcodes = 1
|
||||
"""
|
||||
|
||||
DATA2 = (
|
||||
b'\x80\x02]q\x00(K\x00K\x01G@\x00\x00\x00\x00\x00\x00\x00c'
|
||||
b'builtins\ncomplex\n'
|
||||
b'__builtin__\ncomplex\n'
|
||||
b'q\x01G@\x08\x00\x00\x00\x00\x00\x00G\x00\x00\x00\x00\x00\x00\x00\x00'
|
||||
b'\x86q\x02Rq\x03K\x01J\xff\xff\xff\xffK\xffJ\x01\xff\xff\xff'
|
||||
b'J\x00\xff\xff\xffM\xff\xffJ\x01\x00\xff\xffJ\x00\x00\xff\xffJ\xff'
|
||||
|
@ -346,52 +347,52 @@ DATA2_DIS = """\
|
|||
6: K BININT1 0
|
||||
8: K BININT1 1
|
||||
10: G BINFLOAT 2.0
|
||||
19: c GLOBAL 'builtins complex'
|
||||
37: q BINPUT 1
|
||||
39: G BINFLOAT 3.0
|
||||
48: G BINFLOAT 0.0
|
||||
57: \x86 TUPLE2
|
||||
58: q BINPUT 2
|
||||
60: R REDUCE
|
||||
61: q BINPUT 3
|
||||
63: K BININT1 1
|
||||
65: J BININT -1
|
||||
70: K BININT1 255
|
||||
72: J BININT -255
|
||||
77: J BININT -256
|
||||
82: M BININT2 65535
|
||||
85: J BININT -65535
|
||||
90: J BININT -65536
|
||||
95: J BININT 2147483647
|
||||
100: J BININT -2147483647
|
||||
105: J BININT -2147483648
|
||||
110: ( MARK
|
||||
111: X BINUNICODE 'abc'
|
||||
119: q BINPUT 4
|
||||
121: h BINGET 4
|
||||
123: c GLOBAL '__main__ C'
|
||||
135: q BINPUT 5
|
||||
137: ) EMPTY_TUPLE
|
||||
138: \x81 NEWOBJ
|
||||
139: q BINPUT 6
|
||||
141: } EMPTY_DICT
|
||||
142: q BINPUT 7
|
||||
144: ( MARK
|
||||
145: X BINUNICODE 'foo'
|
||||
153: q BINPUT 8
|
||||
155: K BININT1 1
|
||||
157: X BINUNICODE 'bar'
|
||||
165: q BINPUT 9
|
||||
167: K BININT1 2
|
||||
169: u SETITEMS (MARK at 144)
|
||||
170: b BUILD
|
||||
171: h BINGET 6
|
||||
173: t TUPLE (MARK at 110)
|
||||
174: q BINPUT 10
|
||||
176: h BINGET 10
|
||||
178: K BININT1 5
|
||||
180: e APPENDS (MARK at 5)
|
||||
181: . STOP
|
||||
19: c GLOBAL '__builtin__ complex'
|
||||
40: q BINPUT 1
|
||||
42: G BINFLOAT 3.0
|
||||
51: G BINFLOAT 0.0
|
||||
60: \x86 TUPLE2
|
||||
61: q BINPUT 2
|
||||
63: R REDUCE
|
||||
64: q BINPUT 3
|
||||
66: K BININT1 1
|
||||
68: J BININT -1
|
||||
73: K BININT1 255
|
||||
75: J BININT -255
|
||||
80: J BININT -256
|
||||
85: M BININT2 65535
|
||||
88: J BININT -65535
|
||||
93: J BININT -65536
|
||||
98: J BININT 2147483647
|
||||
103: J BININT -2147483647
|
||||
108: J BININT -2147483648
|
||||
113: ( MARK
|
||||
114: X BINUNICODE 'abc'
|
||||
122: q BINPUT 4
|
||||
124: h BINGET 4
|
||||
126: c GLOBAL '__main__ C'
|
||||
138: q BINPUT 5
|
||||
140: ) EMPTY_TUPLE
|
||||
141: \x81 NEWOBJ
|
||||
142: q BINPUT 6
|
||||
144: } EMPTY_DICT
|
||||
145: q BINPUT 7
|
||||
147: ( MARK
|
||||
148: X BINUNICODE 'foo'
|
||||
156: q BINPUT 8
|
||||
158: K BININT1 1
|
||||
160: X BINUNICODE 'bar'
|
||||
168: q BINPUT 9
|
||||
170: K BININT1 2
|
||||
172: u SETITEMS (MARK at 147)
|
||||
173: b BUILD
|
||||
174: h BINGET 6
|
||||
176: t TUPLE (MARK at 113)
|
||||
177: q BINPUT 10
|
||||
179: h BINGET 10
|
||||
181: K BININT1 5
|
||||
183: e APPENDS (MARK at 5)
|
||||
184: . STOP
|
||||
highest protocol among opcodes = 2
|
||||
"""
|
||||
|
||||
|
@ -570,14 +571,14 @@ class AbstractPickleTests(unittest.TestCase):
|
|||
xname = X.__name__.encode('ascii')
|
||||
# Protocol 0 (text mode pickle):
|
||||
"""
|
||||
0: ( MARK
|
||||
1: i INST '__main__ X' (MARK at 0)
|
||||
15: p PUT 0
|
||||
18: ( MARK
|
||||
19: d DICT (MARK at 18)
|
||||
20: p PUT 1
|
||||
23: b BUILD
|
||||
24: . STOP
|
||||
0: ( MARK
|
||||
1: i INST '__main__ X' (MARK at 0)
|
||||
13: p PUT 0
|
||||
16: ( MARK
|
||||
17: d DICT (MARK at 16)
|
||||
18: p PUT 1
|
||||
21: b BUILD
|
||||
22: . STOP
|
||||
"""
|
||||
pickle0 = (b"(i__main__\n"
|
||||
b"X\n"
|
||||
|
@ -587,15 +588,15 @@ class AbstractPickleTests(unittest.TestCase):
|
|||
|
||||
# Protocol 1 (binary mode pickle)
|
||||
"""
|
||||
0: ( MARK
|
||||
1: c GLOBAL '__main__ X'
|
||||
15: q BINPUT 0
|
||||
17: o OBJ (MARK at 0)
|
||||
18: q BINPUT 1
|
||||
20: } EMPTY_DICT
|
||||
21: q BINPUT 2
|
||||
23: b BUILD
|
||||
24: . STOP
|
||||
0: ( MARK
|
||||
1: c GLOBAL '__main__ X'
|
||||
13: q BINPUT 0
|
||||
15: o OBJ (MARK at 0)
|
||||
16: q BINPUT 1
|
||||
18: } EMPTY_DICT
|
||||
19: q BINPUT 2
|
||||
21: b BUILD
|
||||
22: . STOP
|
||||
"""
|
||||
pickle1 = (b'(c__main__\n'
|
||||
b'X\n'
|
||||
|
@ -604,16 +605,16 @@ class AbstractPickleTests(unittest.TestCase):
|
|||
|
||||
# Protocol 2 (pickle2 = b'\x80\x02' + pickle1)
|
||||
"""
|
||||
0: \x80 PROTO 2
|
||||
2: ( MARK
|
||||
3: c GLOBAL '__main__ X'
|
||||
17: q BINPUT 0
|
||||
19: o OBJ (MARK at 2)
|
||||
20: q BINPUT 1
|
||||
22: } EMPTY_DICT
|
||||
23: q BINPUT 2
|
||||
25: b BUILD
|
||||
26: . STOP
|
||||
0: \x80 PROTO 2
|
||||
2: ( MARK
|
||||
3: c GLOBAL '__main__ X'
|
||||
15: q BINPUT 0
|
||||
17: o OBJ (MARK at 2)
|
||||
18: q BINPUT 1
|
||||
20: } EMPTY_DICT
|
||||
21: q BINPUT 2
|
||||
23: b BUILD
|
||||
24: . STOP
|
||||
"""
|
||||
pickle2 = (b'\x80\x02(c__main__\n'
|
||||
b'X\n'
|
||||
|
|
Loading…
Reference in New Issue