source: project/release/4/easyffi/tests.scm @ 14448

Last change on this file since 14448 was 11065, checked in by felix winkelmann, 12 years ago

easyffi needs access to easyffi-base at expansion time - not solved yet

  • Property svn:executable set to *
File size: 2.1 KB
Line 
1#!/bin/sh
2#| -*- Scheme -*-
3if test x"$CSC" == x""; then
4    CSC=csc
5fi
6
7exec $CSC -X easyffi $0 -t -c++ -o tests -debug F
8|#
9
10(use tinyclos)
11
12;;================================================================================
13
14#>?
15
16class ScmStkFrames : public StkFrames
17{
18public:
19 ScmStkFrames( unsigned int nFrames, unsigned int nChannels, bool interleaved ) 
20 : StkFrames(nFrames, nChannels, interleaved) {}
21};
22<#
23
24;;================================================================================
25
26 #>!
27 struct My_struct { int x; ___mutable float y; };
28
29 typedef struct My_struct My_struct;
30
31 My_struct *make_struct(int x, float y) 
32 {
33   My_struct *s = (My_struct *)malloc(sizeof(My_struct));
34   s->x = x;
35   s->y = y;
36   return s;
37 }
38 <#
39
40(define s (make_struct 3 4))
41(set! (My_struct-y s) 99)
42(pp (list (My_struct-x s) (My_struct-y s)))
43
44;;================================================================================
45;; Test number pattern
46
47#>?
48#define GLU_TESS_MAX_COORD 1.0e+150
49
50#define X1_1 1.0e+150
51#define X1_2 -1.0e+150
52#define X1_3 -1.0e-150
53
54#define X1_4 1.0E+150
55#define X1_5 -1.0E+150
56#define X1_6 -1.0E-150
57
58#define X2_1 1.e150
59#define X2_2 -1.e150
60#define X2_3 -1.e-150
61#define X2_4 1E+150
62#define X2_5 -1e+150
63#define X2_6 -1E-150
64
65#define X3_1 1
66#define X3_2 12
67#define X3_3 -1
68#define X3_4 -12
69
70#define X4_1 1.
71#define X4_2 12.
72#define X4_3 -1.
73#define X4_4 -12.
74
75#define X5_1 1.0
76#define X5_2 12.0
77#define X5_3 -1.0
78#define X5_4 -12.0
79<#
80
81;;================================================================================
82;; Test '.' operator
83
84#>!
85static ___bool getlimit(int limit, ___bool hard, ___out long *result)
86{
87  struct rlimit limits;
88  rlim_t r;
89
90  getrlimit(limit, &limits);
91
92  if(hard) r = limits.rlim_max;
93  else r = limits.rlim_cur;
94
95  if(r == RLIM_INFINITY) return 0;
96  else {
97    *result = r;
98    return 1;
99  }
100}
101
102static ___bool setlimit(int limit, ___bool hard, long value, ___bool inf)
103{
104  struct rlimit limits;
105
106  getrlimit(limit, &limits);
107
108  if(hard) limits.rlim_max = inf ? RLIM_INFINITY : (rlim_t)value;
109  else limits.rlim_cur = inf ? RLIM_INFINITY : (rlim_t)value;
110
111  return setrlimit(limit, &limits) == 0;
112}
113<#
Note: See TracBrowser for help on using the repository browser.