We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 3832978 commit 3a49ca2Copy full SHA for 3a49ca2
test/test-foreign.l
@@ -110,6 +110,25 @@ test-testd = 1.23456
110
(assert-read-line-string= f "1040.000000 1050.000000 1060.000000 1070.000000")
111
(assert-read-line-string= f "2080.000000 2090.000000")
112
(assert-read-line-string= f "206 207")
113
+
114
+ (format t "exec in eus~%")
115
+ (format t "test-testfd = ~A~%"
116
+ (setq ret (test-testfd 100 101 102
117
+ 103 104 105
118
+ 1000.0 1010.0 1020.0 1030.0
119
+ 1040.0 1050.0 1060.0 1070.0
120
+ 2080.0 2090.0 2100.0 2110.0
121
+ 206 207)))
122
+ (assert (= 123456 ret))
123
+ ;;
124
+ (check-func 'test-testfd)
125
+ (setq f (piped-fork (format nil "eusg ~A/test/test-foreign.module_l '(progn (test-testfd 100 101 102 103 104 105 1000.000000 1010.000000 1020.000000 1030.000000 1040.000000 1050.000000 1060.000000 1070.000000 2080.000000 2090.000000 2100.000000 2110.000000 206 207)(exit 0))'" *eusdir*)))
126
+ (assert-read-line-string= f "100 101 102")
127
+ (assert-read-line-string= f "103 104 105")
128
+ (assert-read-line-string= f "1000.000000 1010.000000 1020.000000 1030.000000")
129
+ (assert-read-line-string= f "1040.000000 1050.000000 1060.000000 1070.000000")
130
+ (assert-read-line-string= f "2080.000000 2090.000000 2100.000000 2110.000000")
131
+ (assert-read-line-string= f "206 207")
132
)
133
134
(deftest test-int-test
test/test-foreign.module_l
@@ -45,6 +45,12 @@
45
:float :float :float :float
46
:float :float
47
:integer :integer) :float)
48
+ (defforeign test-testfd *testmod* "test_testfd" (:integer :integer :integer
49
+ :integer :integer :integer
50
+ :double :float32 :double :float32
51
+ :float32 :double :double :float32
52
53
+ :integer :integer) :integer)
54
(defforeign call-ifunc *testmod* "call_ifunc" () :integer)
55
(defforeign call-ffunc *testmod* "call_ffunc" () :float)
56
test/test_foreign.c
@@ -307,6 +307,24 @@ eusfloat_t test_testf(long i0, long i1, long i2,
307
//return 0x1234;
308
return 1.23456;
309
}
310
+int test_testfd(long i0, long i1, long i2,
311
+ long i3, long i4, long i5,
312
+ double d0, float d1, double d2, float d3,
313
+ float d4, double d5, double d6, float d7,
314
+ float d8, double d9, double d10, float d11,
315
+ long i6, long i7) {
316
+ printf("%ld %ld %ld\n", i0, i1, i2);
317
+ printf("%ld %ld %ld\n", i3, i4, i5);
318
+ //printf("%ld %ld %ld %ld\n",
319
+ //(long)d0, (long)d1, (long)d2, (long)d3);
320
+ printf("%lf %f %lf %f\n", d0, d1, d2, d3);
321
+ printf("%f %lf %lf %f\n", d4, d5, d6, d7);
322
+ printf("%f %lf %lf %f\n", d8, d9, d10, d11);
323
+ printf("%ld %ld\n", i6, i7);
324
325
+ //return 0x1234;
326
+ return 123456;
327
+}
328
static long (*g)();
329
static double (*gf) (long i0, long i1, long i2,
330
long i3, long i4, long i5,
0 commit comments