Author: Armin Rigo <[email protected]>
Branch:
Changeset: r357:bca8a7e8a36a
Date: 2013-07-06 15:06 +0200
http://bitbucket.org/pypy/stmgc/changeset/bca8a7e8a36a/
Log: Test and pass with integers
diff --git a/c4/extra.c b/c4/extra.c
--- a/c4/extra.c
+++ b/c4/extra.c
@@ -156,9 +156,6 @@
size_t stm_decode_abort_info(struct tx_descriptor *d, long long elapsed_time,
int abort_reason, char *output)
{
- return 1;
-}
-#if 0
/* re-encodes the abort info as a single string.
For convenience (no escaping needed, no limit on integer
sizes, etc.) we follow the bittorrent format. */
@@ -191,11 +188,11 @@
WRITE_BUF(buffer, res_size);
WRITE('e');
for (i=0; i<d->abortinfo.size; i+=2) {
- char *object = (char *)stm_RepeatReadBarrier(d->abortinfo.items[i+0]);
+ char *object = (char *)d->abortinfo.items[i+0];
long *fieldoffsets = (long*)d->abortinfo.items[i+1];
long kind, offset;
size_t rps_size;
- RPyString *rps;
+ char *rps;
while (1) {
kind = *fieldoffsets++;
@@ -222,13 +219,14 @@
*(unsigned long*)(object + offset));
WRITE_BUF(buffer, res_size);
break;
- case 3: /* pointer to STR */
- rps = *(RPyString **)(object + offset);
+ case 3: /* a string of bytes from the target object */
+ rps = *(char **)(object + offset);
+ offset = *fieldoffsets++;
if (rps) {
- rps_size = RPyString_Size(rps);
+ rps_size = stmcb_size((gcptr)rps) - offset;
res_size = sprintf(buffer, "%zu:", rps_size);
WRITE_BUF(buffer, res_size);
- WRITE_BUF(_RPyString_AsString(rps), rps_size);
+ WRITE_BUF(rps + offset, rps_size);
}
else {
WRITE_BUF("0:", 2);
@@ -245,7 +243,6 @@
#undef WRITE_BUF
return totalsize;
}
-#endif
char *stm_inspect_abort_info(void)
{
diff --git a/c4/test/test_extra.py b/c4/test/test_extra.py
--- a/c4/test/test_extra.py
+++ b/c4/test/test_extra.py
@@ -19,7 +19,6 @@
# no real test here
def test_inspect_abort_info_signed():
- py.test.skip("in-progress")
fo1 = ffi.new("long[]", [-2, 1, HDR, -1, 0])
#
@perform_transaction
@@ -32,4 +31,4 @@
else:
c = lib.stm_inspect_abort_info()
assert c
- assert ffi.string(c) == "???"
+ assert ffi.string(c).endswith("eli-421289712eee")
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit