Skip to content

Commit d70c05c

Browse files
author
roman_yakovenko
committed
porting tests to x86_64 architecture
1 parent d505181 commit d70c05c

File tree

3 files changed

+44
-27
lines changed

3 files changed

+44
-27
lines changed

unittests/autoconfig.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import os
77
import sys
88
import getpass
9+
import platform
910

1011
#~ os.environ['PYCHECKER'] = '--limit=1000 -q --no-argsused'
1112
#~ import pychecker.checker
@@ -15,7 +16,9 @@
1516
data_directory = os.path.join( this_module_dir_path, 'data' )
1617
build_directory = os.path.join( this_module_dir_path, 'temp' )
1718

18-
gccxml_path = os.path.join( this_module_dir_path, '..', '..', 'gccxml_bin', 'v09', sys.platform, 'bin' )
19+
gccxml_path = os.path.join( this_module_dir_path, '..', '..', 'gccxml_bin', 'v09', platform.system(), platform.machine(), 'bin' )
20+
if not os.path.exists( gccxml_path ):
21+
gccxml_path = os.path.join( this_module_dir_path, '..', '..', 'gccxml_bin', 'v09', sys.platform, 'bin' )
1922
gccxml_version = '__GCCXML_09__'
2023

2124
try:

unittests/demangled_tester.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# http://www.boost.org/LICENSE_1_0.txt)
55

66
import os
7+
import platform
78
import unittest
89
import autoconfig
910
import parser_test_case
@@ -18,7 +19,7 @@ def __init__(self, architecture, *args ):
1819
self.header = 'demangled.hpp'
1920
self.global_ns = None
2021
self.architecture = architecture
21-
22+
2223
def setUp(self):
2324
reader = parser.source_reader_t( self.config )
2425
decls = None
@@ -27,17 +28,22 @@ def setUp(self):
2728
else:
2829
original_get_architecture = utils.get_architecture
2930
utils.get_architecture = lambda: 64
30-
decls = reader.read_xml_file(
31+
decls = reader.read_xml_file(
3132
os.path.join( autoconfig.data_directory, 'demangled_tester_64bit.xml' ) )
3233
utils.get_architecture = original_get_architecture
3334
self.global_ns = declarations.get_global_namespace( decls )
34-
35-
def test( self ):
35+
36+
def test( self ):
3637
demangled = self.global_ns.namespace( 'demangled' )
3738
if 32 == self.architecture:
3839
if '0.9' in demangled.compiler:
39-
cls = demangled.class_( 'item_t<3740067437ul, 11ul, 2147483648ul>' )
40-
self.failUnless( cls._name == 'item_t<-554899859ul,11ul,-2147483648ul>' )
40+
if platform.machine() == 'x86_64':
41+
cls = demangled.class_( 'item_t<25214903917ul, 11ul, 2147483648ul>' )
42+
self.failUnless( cls._name == 'item_t<25214903917ul,11ul,2147483648ul>'
43+
, cls._name )
44+
else:
45+
cls = demangled.class_( 'item_t<3740067437ul, 11ul, 2147483648ul>' )
46+
self.failUnless( cls._name == 'item_t<-554899859ul,11ul,-2147483648ul>')
4147
else:
4248
cls = demangled.class_( 'item_t<3740067437l, 11l, 2147483648l>' )
4349
self.failUnless( cls._name == 'item_t<0x0deece66d,11,0x080000000>' )
@@ -48,7 +54,7 @@ def test( self ):
4854
def test_free_function( self ):
4955
f = self.global_ns.free_functions('set_a', allow_empty=True)
5056
if not f:
51-
return
57+
return
5258
f = f[0]
5359
self.failUnless( f.mangled )
5460

@@ -60,11 +66,11 @@ class tester_64_t( tester_impl_t ):
6066
def __init__(self, *args):
6167
tester_impl_t.__init__(self, 64, *args)
6268

63-
69+
6470
def create_suite():
65-
suite = unittest.TestSuite()
66-
suite.addTest( unittest.makeSuite(tester_32_t))
67-
suite.addTest( unittest.makeSuite(tester_64_t))
71+
suite = unittest.TestSuite()
72+
suite.addTest( unittest.makeSuite(tester_32_t))
73+
suite.addTest( unittest.makeSuite(tester_64_t))
6874
return suite
6975

7076
def run_suite():

unittests/patcher_tester.py

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import os
77
import unittest
8+
import platform
89
import autoconfig
910
import parser_test_case
1011

@@ -17,7 +18,7 @@ def __init__(self, architecture, *args):
1718
parser_test_case.parser_test_case_t.__init__(self, *args)
1819
self.architecture = architecture
1920
self.global_ns = None
20-
21+
2122
def test_enum_patcher(self):
2223
fix_enum = self.global_ns.free_fun( 'fix_enum' )
2324
self.failUnless( fix_enum.arguments[0].default_value == '::ns1::ns2::apple' )
@@ -28,12 +29,19 @@ def test_numeric_patcher(self):
2829
fix_numeric = self.global_ns.free_fun( 'fix_numeric' )
2930
if 32 == self.architecture:
3031
if '0.9' in fix_numeric.compiler:
31-
self.failUnless( fix_numeric.arguments[0].default_value == u"0xffffffffffffffffu" )
32+
if platform.machine() == 'x86_64':
33+
self.failUnless( fix_numeric.arguments[0].default_value == u"-1u"
34+
, fix_numeric.arguments[0].default_value )
35+
else:
36+
self.failUnless( fix_numeric.arguments[0].default_value == u"0xffffffffffffffffu"
37+
, fix_numeric.arguments[0].default_value )
3238
else:
33-
self.failUnless( fix_numeric.arguments[0].default_value == u"0xffffffffffffffff" )
34-
else:
35-
self.failUnless( fix_numeric.arguments[0].default_value == u"0ffffffff" )
36-
39+
self.failUnless( fix_numeric.arguments[0].default_value == u"0xffffffffffffffff"
40+
, fix_numeric.arguments[0].default_value )
41+
else:
42+
self.failUnless( fix_numeric.arguments[0].default_value == u"0ffffffff"
43+
, fix_numeric.arguments[0].default_value )
44+
3745
def test_unnamed_enum_patcher(self):
3846
fix_unnamed = self.global_ns.free_fun( 'fix_unnamed' )
3947
self.failUnless( fix_unnamed.arguments[0].default_value == u"int(::fx::unnamed)" )
@@ -65,19 +73,19 @@ def test_constructor_patcher(self):
6573
default_values = [
6674
'vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >()'
6775
, 'vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >((&allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >()))'
68-
]
76+
]
6977
self.failUnless( clone_tree.arguments[0].default_value in default_values)
70-
78+
7179
class tester_32_t( tester_impl_t ):
72-
global_ns = None
80+
global_ns = None
7381
def __init__(self, *args):
7482
tester_impl_t.__init__(self, 32, *args)
7583

7684
def setUp( self ):
7785
if not tester_32_t.global_ns:
7886
reader = parser.source_reader_t( self.config )
7987
tester_32_t.global_ns = reader.read_file( 'patcher.hpp' )[0].top_parent
80-
self.global_ns = tester_32_t.global_ns
88+
self.global_ns = tester_32_t.global_ns
8189

8290

8391
class tester_64_t( tester_impl_t ):
@@ -92,17 +100,17 @@ def setUp( self ):
92100

93101
if not tester_64_t.global_ns:
94102
reader = parser.source_reader_t( self.config )
95-
tester_64_t.global_ns = reader.read_xml_file(
103+
tester_64_t.global_ns = reader.read_xml_file(
96104
os.path.join( autoconfig.data_directory, 'patcher_tester_64bit.xml' ) )[0].top_parent
97105
self.global_ns = tester_64_t.global_ns
98-
106+
99107
def tearDown( self ):
100108
utils.get_architecture = self.original_get_architecture
101109

102110
def create_suite():
103-
suite = unittest.TestSuite()
104-
suite.addTest( unittest.makeSuite(tester_32_t))
105-
suite.addTest( unittest.makeSuite(tester_64_t))
111+
suite = unittest.TestSuite()
112+
suite.addTest( unittest.makeSuite(tester_32_t))
113+
suite.addTest( unittest.makeSuite(tester_64_t))
106114
return suite
107115

108116
def run_suite():

0 commit comments

Comments
 (0)