~ubuntu-branches/ubuntu/utopic/gridengine/utopic

« back to all changes in this revision

Viewing changes to source/libs/cull/test_cull_list.c

  • Committer: Bazaar Package Importer
  • Author(s): Mark Hymers
  • Date: 2008-06-25 22:36:13 UTC
  • Revision ID: james.westby@ubuntu.com-20080625223613-tvd9xlhuoct9kyhm
Tags: upstream-6.2~beta2
ImportĀ upstreamĀ versionĀ 6.2~beta2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdio.h>
 
2
#include <stdlib.h>
 
3
 
 
4
#define __SGE_GDI_LIBRARY_HOME_OBJECT_FILE__
 
5
#include "cull.h"
 
6
#include "cull_list.h"
 
7
 
 
8
enum {
 
9
   TEST_int = 1,
 
10
   TEST_host,
 
11
   TEST_string,
 
12
   TEST_float,
 
13
   TEST_double,
 
14
   TEST_char,
 
15
   TEST_long,
 
16
   TEST_ulong,
 
17
   TEST_bool,
 
18
   TEST_list,
 
19
   TEST_object,
 
20
   TEST_ref
 
21
};
 
22
 
 
23
LISTDEF(TEST_Type)
 
24
   SGE_INT    (TEST_int,               CULL_DEFAULT)
 
25
   SGE_HOST   (TEST_host,              CULL_DEFAULT)
 
26
   SGE_STRING (TEST_string,            CULL_DEFAULT)
 
27
   SGE_FLOAT  (TEST_float,             CULL_DEFAULT)
 
28
   SGE_DOUBLE (TEST_double,            CULL_DEFAULT)
 
29
   SGE_CHAR   (TEST_char,              CULL_DEFAULT)
 
30
   SGE_LONG   (TEST_long,              CULL_DEFAULT)
 
31
   SGE_ULONG  (TEST_ulong,             CULL_DEFAULT)
 
32
   SGE_BOOL   (TEST_bool,              CULL_DEFAULT)
 
33
   SGE_LIST   (TEST_list, TEST_Type,   CULL_DEFAULT)
 
34
   SGE_OBJECT (TEST_object, TEST_Type, CULL_DEFAULT)
 
35
   SGE_REF    (TEST_ref, TEST_Type,    CULL_DEFAULT)
 
36
LISTEND
 
37
 
 
38
NAMEDEF(TEST_Name)
 
39
   NAME("TEST_int")
 
40
   NAME("TEST_host")
 
41
   NAME("TEST_string")
 
42
   NAME("TEST_float")
 
43
   NAME("TEST_double")
 
44
   NAME("TEST_char")
 
45
   NAME("TEST_long")
 
46
   NAME("TEST_ulong")
 
47
   NAME("TEST_bool")
 
48
   NAME("TEST_list")
 
49
   NAME("TEST_object")
 
50
   NAME("TEST_ref")
 
51
NAMEEND   
 
52
 
 
53
#define TEST_Size sizeof(TEST_Name) / sizeof(char *)
 
54
 
 
55
lNameSpace nmv[] = {
 
56
   {1, TEST_Size, TEST_Name},
 
57
   {0, 0, NULL}
 
58
};
 
59
 
 
60
int main(int argc, char *argv[])
 
61
{
 
62
   lListElem *ep, *obj, *copy;
 
63
   lEnumeration *enp;
 
64
   int index;
 
65
 
 
66
   lInit(nmv);
 
67
 
 
68
   /* create an element */
 
69
   ep = lCreateElem(TEST_Type);
 
70
   obj = lCreateElem(TEST_Type);
 
71
 
 
72
   /* test field access functions */
 
73
   lSetInt(ep, TEST_int, 1);
 
74
   lSetHost(ep, TEST_host, "test_host");
 
75
   lSetString(ep, TEST_string, "test_string");
 
76
   lSetFloat(ep, TEST_float, 2.0);
 
77
   lSetDouble(ep, TEST_double, 3.1);
 
78
   lSetChar(ep, TEST_char, 'A');
 
79
   lSetLong(ep, TEST_long, 2);
 
80
   lSetUlong(ep, TEST_ulong, 3);
 
81
   lSetBool(ep, TEST_bool, true);
 
82
   lSetList(ep, TEST_list, NULL);
 
83
 
 
84
   lSetInt(ep, TEST_int, 100);
 
85
   lSetObject(ep, TEST_object, obj);
 
86
   lSetRef(ep, TEST_ref, ep);
 
87
 
 
88
   lSetInt(obj, TEST_int, 50);
 
89
 
 
90
   lAddSubStr(obj, TEST_string, "sub list element in sub object", 
 
91
              TEST_list, TEST_Type);
 
92
   
 
93
   printf("element after setting fields\n");
 
94
   lWriteElemTo(ep, stdout);
 
95
 
 
96
   /* test lCopyElem */
 
97
   copy = lCopyElem(ep);
 
98
   printf("copy of element\n");
 
99
   lWriteElemTo(copy, stdout);
 
100
   lFreeElem(&copy);
 
101
 
 
102
   /* test lCopyElemPartialPack */
 
103
   /* first copy the complete element */
 
104
   copy = lCreateElem(TEST_Type);
 
105
   enp = lWhat("%T(ALL)", TEST_Type);
 
106
   index = 0;
 
107
   lCopyElemPartialPack(copy, &index, ep, enp, true, NULL); 
 
108
   printf("complete copy of element\n");
 
109
   lWriteElemTo(copy, stdout);
 
110
   lFreeElem(&copy);
 
111
   lFreeWhat(&enp);
 
112
   /* now copy a reduced element */
 
113
   copy = lCreateElem(TEST_Type);
 
114
   enp = lWhat("%T(%I %I %I)", TEST_Type, TEST_string, TEST_float, TEST_double);
 
115
   index = lGetPosInDescr(TEST_Type, TEST_string);
 
116
   lCopyElemPartialPack(copy, &index, ep, enp, true, NULL); 
 
117
   printf("partial copy of element\n");
 
118
   lWriteElemTo(copy, stdout);
 
119
   lFreeElem(&copy);
 
120
   lFreeWhat(&enp);
 
121
 
 
122
   /* test reducing of elements */
 
123
 
 
124
   /* test clearing of changed info */
 
125
   lListElem_clear_changed_info(ep);
 
126
   printf("cleared changed information for object and sub elements\n");
 
127
   lWriteElemTo(ep, stdout);
 
128
 
 
129
   /* cleanup and exit */
 
130
   lFreeElem(&ep);                  
 
131
   return EXIT_SUCCESS;
 
132
}
 
133
 
 
134