Author: Philip Jenvey <[email protected]>
Branch:
Changeset: r63762:754de53974f9
Date: 2013-04-29 18:52 -0700
http://bitbucket.org/pypy/pypy/changeset/754de53974f9/
Log: add a DefinedConstantString helper
diff --git a/rpython/rtyper/tool/rffi_platform.py
b/rpython/rtyper/tool/rffi_platform.py
--- a/rpython/rtyper/tool/rffi_platform.py
+++ b/rpython/rtyper/tool/rffi_platform.py
@@ -61,6 +61,12 @@
DEFINED = DefinedConstantInteger(macro)
return configure(CConfig)['DEFINED']
+def getdefinedstring(macro, c_header_source):
+ class CConfig:
+ _compilation_info_ = eci_from_header(c_header_source)
+ DEFINED = DefinedConstantString(macro)
+ return configure(CConfig)['DEFINED']
+
def getintegerfunctionresult(function, args=None, c_header_source='',
includes=[]):
class CConfig:
_compilation_info_ = eci_from_header(c_header_source)
diff --git a/rpython/rtyper/tool/test/test_rffi_platform.py
b/rpython/rtyper/tool/test/test_rffi_platform.py
--- a/rpython/rtyper/tool/test/test_rffi_platform.py
+++ b/rpython/rtyper/tool/test/test_rffi_platform.py
@@ -126,6 +126,13 @@
value = rffi_platform.getdefineddouble('BLAH', '#define BLAH (double)0/0')
assert isnan(value)
+def test_defined_constant_string():
+ value = rffi_platform.getdefinedstring('MCDONC', '')
+ assert value is None
+ value = rffi_platform.getdefinedstring('RAYDEO',
+ '#define RAYDEO "Michael Merickel"')
+ assert value == 'Michael Merickel'
+
def test_getintegerfunctionresult():
func = 'int sum(int a, int b) {return a + b;}'
value = rffi_platform.getintegerfunctionresult('sum', [6, 7], func)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit