File: test380.py

package info (click to toggle)
jython 2.7.3%2Brepack1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 62,820 kB
  • sloc: python: 641,384; java: 306,981; xml: 2,066; sh: 514; ansic: 126; makefile: 77
file content (44 lines) | stat: -rw-r--r-- 746 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
"""
fixed broken id checks with pickle and copy that depends on id working correctly
"""

import support

d = {}

import java

clash_id = java.lang.System.identityHashCode

for i in xrange(100000):
  s = ['test',i]
  j = clash_id(s)
  if d.has_key(j):
    break
  d[j] = s

s1 = s
s0 = d[j]

data = [s0,s1,s0]

#print data

import pickle
import cPickle

def check(ctxt,data0,data1):
    if data0 != data1:
        raise support.TestError,"data corrupted in %s because of id clashes: %s != %s" % (ctxt.__name__,data0,data1)

def pik_test(pikmod,data):
    pik =pikmod.dumps(data,1)
    data1 = pikmod.loads(pik)
    check(pikmod,data,data1)

pik_test(cPickle,data)
pik_test(pickle,data)

import copy

check(copy.deepcopy,data,copy.deepcopy(data))