Changeset 4e59df4 in git for Tst/Short/pyobject.tst


Ignore:
Timestamp:
Jun 27, 2012, 3:38:21 PM (11 years ago)
Author:
Alexander Dreyer <alexander.dreyer@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
Children:
9165865409bb43ba082670375c4a04e78f8b76e1
Parents:
29fc84389b9713cdf07cc538bad5becf4758553e
git-author:
Alexander Dreyer <alexander.dreyer@itwm.fraunhofer.de>2012-06-27 15:38:21+02:00
git-committer:
Alexander Dreyer <alexander.dreyer@itwm.fraunhofer.de>2012-08-01 23:32:35+02:00
Message:
new: tests for interaction of pyobject and newtruct
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Tst/Short/pyobject.tst

    r29fc843 r4e59df4  
    161161python_eval("tuple")(list(rl[1..3]));
    162162
     163// interaction with newstruct'ed type
     164newstruct("wrapping","pyobject p");
     165wrapping wrapped;
     166
     167pyobject seventeen = 17;
     168wrapped.p = seventeen;
     169wrapped;
     170
     171proc unwrap(wrapping arg) { return (arg.p); }
     172system("install", "wrapping", "pyobject", unwrap, 1);
     173
     174pyobject released = wrapped;
     175released;
     176
     177proc wrap(pyobject arg) { wrapping res; res.p = arg; return (res); }
     178system("install", "pyobject", "wrapping", wrap, 1);
     179
     180pyobject nineteen = 19;
     181wrapped = nineteen;
     182wrapped;
     183
     184
     185// interaction with built-ins
     186proc to_poly(pyobject arg) { return (poly(23)); }
     187system("install", "pyobject", "poly", to_poly, 1);
     188
     189pyobject for_poly="4poly";
     190poly(for_poly);
     191
     192proc from_poly(poly arg) { pyobject res = string(arg); return (res); }
     193system("install", "pyobject", "=", from_poly, 1);
     194
     195poly p = x+1;
     196for_poly = p;
     197for_poly;
     198
     199
     200// interaction with both built-ins and newstructs
     201newstruct("another","pyobject p");
     202another other;
     203other.p = seventeen;
     204other;
     205
     206released = other;  // -> error
     207released;
     208
     209proc from_types(def arg) {
     210  if (typeof(arg) == "poly") { return (from_poly(arg)); }
     211  if (typeof(arg) == "another") { return (arg.p); }
     212}
     213system("install", "pyobject", "=", from_types, 1);
     214
     215released = other;
     216released;
     217released = p;
     218released;
     219
     220
    163221tst_status(1);
    164222$
Note: See TracChangeset for help on using the changeset viewer.