Renamed ERR macro to avoid confusing the make_debug script.
[wine/multimedia.git] / programs / regtest / regtest.c
blob09aa2a4fcc8b929f290447a44df650ccf8e58c54
1 /*
2 * Registry testing program
4 * Copyright 1998 Matthew Becker
6 * The return codes were generated in an NT40 environment, using lcc-win32
8 * NOTES
9 * When compiling under lcc-win32, I get three (3) warning, but they all
10 * seem to be issues with lcc.
12 * If creating a new testing sequence, please try to clean up any
13 * registry changes that are made.
16 #include <stdio.h>
17 #include <malloc.h>
18 #include <windows.h>
19 #include <winreg.h>
20 #include <winerror.h>
21 #include <winnt.h>
23 /* True this when security is implemented */
24 #define CHECK_SAM FALSE
26 #define ERROR(s,d) fprintf(stderr, "%s:#%d(Status=%ld)\n", __FUNCTION__,s,d)
29 * NOTES: These individual routines are listed in alphabetical order.
31 * They are meant to test error conditions. Success conditions are
32 * tested in the sequences found at the end.
35 /******************************************************************************
36 * TestCloseKey
38 void TestCloseKey()
40 long lSts;
42 lSts = RegCloseKey((HKEY)2);
43 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
45 lSts = RegCloseKey(HKEY_LOCAL_MACHINE);
46 if (lSts != ERROR_SUCCESS) ERROR(2,lSts);
48 /* Check twice just for kicks */
49 lSts = RegCloseKey(HKEY_LOCAL_MACHINE);
50 if (lSts != ERROR_SUCCESS) ERROR(3,lSts);
53 /******************************************************************************
54 * TestConnectRegistry
56 void TestConnectRegistry()
58 long lSts;
59 HKEY hkey;
61 lSts = RegConnectRegistry("",(HKEY)2,&hkey);
62 if (lSts != ERROR_SUCCESS) ERROR(1,lSts);
64 lSts = RegConnectRegistry("",HKEY_LOCAL_MACHINE,&hkey);
65 if (lSts != ERROR_SUCCESS) ERROR(2,lSts);
67 #if TOO_SLOW
68 lSts = RegConnectRegistry("\\\\regtest",HKEY_LOCAL_MACHINE,&hkey);
69 if (lSts != ERROR_BAD_NETPATH) ERROR(3,lSts);
70 #endif
73 /******************************************************************************
74 * TestCreateKey
76 void TestCreateKey()
78 long lSts;
79 HKEY hkey;
81 lSts = RegCreateKey((HKEY)2,"",&hkey);
82 if (lSts != ERROR_BADKEY) ERROR(1,lSts);
84 lSts = RegCreateKey(HKEY_LOCAL_MACHINE,"",&hkey);
85 if (lSts != ERROR_SUCCESS) ERROR(2,lSts);
86 RegCloseKey(hkey);
88 lSts = RegCreateKey(HKEY_LOCAL_MACHINE,"\\asdf",&hkey);
89 if (lSts != ERROR_BAD_PATHNAME) ERROR(3,lSts);
91 #if 0
92 lSts = RegCreateKey(HKEY_LOCAL_MACHINE,"asdf\\",&hkey);
93 if (lSts != ERROR_INVALID_PARAMETER) ERROR(4,lSts);
94 #endif
96 lSts = RegCreateKey(HKEY_LOCAL_MACHINE,"\\asdf\\",&hkey);
97 if (lSts != ERROR_BAD_PATHNAME) ERROR(5,lSts);
100 /******************************************************************************
101 * TestCreateKeyEx
103 void TestCreateKeyEx()
105 long lSts;
106 HKEY hkey;
107 DWORD dwDisp;
109 lSts = RegCreateKeyEx((HKEY)2,"",0,"",0,0,NULL,&hkey,&dwDisp);
110 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
112 lSts = RegCreateKeyEx(HKEY_LOCAL_MACHINE,"regtest",0,"",0,0,NULL,&hkey,
113 &dwDisp);
114 if (lSts != ERROR_INVALID_PARAMETER) ERROR(2,lSts);
116 lSts = RegCreateKeyEx(HKEY_LOCAL_MACHINE,"regtest",0,"asdf",0,
117 KEY_ALL_ACCESS,NULL,&hkey,&dwDisp);
118 if (lSts != ERROR_INVALID_PARAMETER) ERROR(3,lSts);
120 lSts = RegCreateKeyEx(HKEY_LOCAL_MACHINE,"regtest",0,"",0,
121 KEY_ALL_ACCESS,NULL,&hkey,&dwDisp);
122 if (lSts != ERROR_INVALID_PARAMETER) ERROR(4,lSts);
126 /******************************************************************************
127 * TestDeleteKey
129 void TestDeleteKey()
131 long lSts;
133 lSts = RegDeleteKey((HKEY)2, "asdf");
134 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
136 lSts = RegDeleteKey(HKEY_CURRENT_USER, "asdf");
137 if (lSts != ERROR_FILE_NOT_FOUND) ERROR(2,lSts);
139 #if CHECK_SAM
140 lSts = RegDeleteKey(HKEY_CURRENT_USER, "");
141 if (lSts != ERROR_ACCESS_DENIED) ERROR(3,lSts);
142 #endif
145 /******************************************************************************
146 * TestDeleteValue
148 void TestDeleteValue()
150 long lSts;
152 lSts = RegDeleteValue((HKEY)2, "asdf");
153 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
155 lSts = RegDeleteValue(HKEY_CURRENT_USER, "");
156 if (lSts != ERROR_FILE_NOT_FOUND) ERROR(2,lSts);
158 lSts = RegDeleteValue(HKEY_CURRENT_USER, "asdf");
159 if (lSts != ERROR_FILE_NOT_FOUND) ERROR(3,lSts);
161 lSts = RegDeleteValue(HKEY_CURRENT_USER, "\\asdf");
162 if (lSts != ERROR_FILE_NOT_FOUND) ERROR(4,lSts);
165 /******************************************************************************
166 * TestEnumKey
168 void TestEnumKey()
170 long lSts;
171 char *sVal;
172 long lVal;
174 lVal = 1;
175 sVal = (char *)malloc(lVal * sizeof(char));
177 lSts = RegEnumKey((HKEY)2,3,sVal,lVal);
178 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
180 lSts = RegEnumKey(HKEY_CURRENT_USER,-1,sVal,lVal);
181 if (lSts != ERROR_NO_MORE_ITEMS) ERROR(2,lSts);
183 lSts = RegEnumKey(HKEY_CURRENT_USER,0,sVal,lVal);
184 if (lSts != ERROR_MORE_DATA) ERROR(3,lSts);
187 /******************************************************************************
188 * TestEnumKeyEx
190 void TestEnumKeyEx()
192 long lSts;
193 char *sVal;
194 char *sClass;
195 unsigned long lLen1;
196 unsigned long lLen2;
197 FILETIME ft;
199 lLen1 = 1;
200 sVal = (char *)malloc(lLen1 * sizeof(char));
201 lLen2 = 1;
202 sClass = (char *)malloc(lLen2 * sizeof(char));
204 lSts = RegEnumKeyEx((HKEY)2,0,sVal,&lLen1,0,sClass,&lLen2,&ft);
205 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
207 lSts = RegEnumKeyEx(HKEY_LOCAL_MACHINE,0,sVal,&lLen1,0,sClass,&lLen2,&ft);
208 if (lSts != ERROR_MORE_DATA) ERROR(2,lSts);
210 lSts = RegEnumKeyEx(HKEY_LOCAL_MACHINE,0,sVal,&lLen1,0,sClass,&lLen2,&ft);
211 if (lSts != ERROR_MORE_DATA) ERROR(3,lSts);
214 /******************************************************************************
215 * TestEnumValue
217 void TestEnumValue()
219 long lSts;
220 char *sVal;
221 unsigned long lVal;
222 unsigned long lType;
223 unsigned long lLen1;
224 char *bVal;
226 lVal = 1;
227 sVal = (char *)malloc(lVal * sizeof(char));
228 lLen1 = 1;
229 bVal = (char *)malloc(lLen1 * sizeof(char));
231 lSts = RegEnumValue((HKEY)2,-1,sVal,&lVal,0,&lType,NULL,&lLen1);
232 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
234 lSts = RegEnumValue(HKEY_LOCAL_MACHINE,-1,sVal,&lVal,0,&lType,NULL,&lLen1);
235 if (lSts != ERROR_NO_MORE_ITEMS) ERROR(2,lSts);
237 lSts = RegEnumValue(HKEY_LOCAL_MACHINE,0,sVal,&lVal,0,&lType,NULL,&lLen1);
238 if (lSts != ERROR_SUCCESS) ERROR(3,lSts);
240 lSts = RegEnumValue(HKEY_LOCAL_MACHINE,0,sVal,&lVal,0,NULL,NULL,&lLen1);
241 if (lSts != ERROR_SUCCESS) ERROR(4,lSts);
243 lSts = RegEnumValue(HKEY_LOCAL_MACHINE,1,sVal,&lVal,0,&lType,bVal,&lLen1);
244 if (lSts != ERROR_NO_MORE_ITEMS) ERROR(5,lSts);
247 /******************************************************************************
248 * TestFlushKey
250 void TestFlushKey()
252 long lSts;
254 lSts = RegFlushKey((HKEY)2);
255 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
257 lSts = RegFlushKey(HKEY_LOCAL_MACHINE);
258 if (lSts != ERROR_SUCCESS) ERROR(2,lSts);
261 /******************************************************************************
262 * TestGetKeySecurity
264 void TestGetKeySecurity()
266 long lSts;
267 SECURITY_INFORMATION si;
268 SECURITY_DESCRIPTOR sd;
269 unsigned long lLen;
271 lLen = sizeof(sd);
272 si = 0;
273 lSts = RegGetKeySecurity((HKEY)2,si,&sd,&lLen);
274 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
276 lSts = RegGetKeySecurity(HKEY_LOCAL_MACHINE,si,&sd,&lLen);
277 if (lSts != ERROR_INSUFFICIENT_BUFFER) ERROR(2,lSts);
279 si = GROUP_SECURITY_INFORMATION;
280 lSts = RegGetKeySecurity(HKEY_LOCAL_MACHINE,si,&sd,&lLen);
281 if (lSts != ERROR_SUCCESS) ERROR(3,lSts);
284 /******************************************************************************
285 * TestLoadKey
287 void TestLoadKey()
289 long lSts;
291 lSts = RegLoadKey((HKEY)2,"","");
292 if (lSts != ERROR_INVALID_PARAMETER) ERROR(1,lSts);
294 lSts = RegLoadKey(HKEY_CURRENT_USER,"","");
295 if (lSts != ERROR_INVALID_PARAMETER) ERROR(2,lSts);
297 lSts = RegLoadKey(HKEY_CURRENT_USER,"regtest","");
298 if (lSts != ERROR_INVALID_PARAMETER) ERROR(3,lSts);
300 lSts = RegLoadKey(HKEY_CURRENT_USER,"\\regtest","");
301 if (lSts != ERROR_INVALID_PARAMETER) ERROR(4,lSts);
303 #if CHECK_SAM
304 lSts = RegLoadKey(HKEY_CURRENT_USER,"regtest","regtest.dat");
305 if (lSts != ERROR_PRIVILEGE_NOT_HELD) ERROR(5,lSts);
307 lSts = RegLoadKey(HKEY_CURRENT_USER,"\\regtest","regtest.dat");
308 if (lSts != ERROR_PRIVILEGE_NOT_HELD) ERROR(6,lSts);
309 #endif
312 /******************************************************************************
313 * TestNotifyChangeKeyValue
315 void TestNotifyChangeKeyValue()
317 long lSts;
318 HANDLE hEvent;
320 hEvent = (HANDLE)0;
322 lSts = RegNotifyChangeKeyValue((HKEY)2, TRUE, REG_NOTIFY_CHANGE_NAME, 0, 0);
323 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
325 lSts = RegNotifyChangeKeyValue(HKEY_CURRENT_USER, TRUE, REG_NOTIFY_CHANGE_NAME, 0, 1);
326 if (lSts != ERROR_INVALID_PARAMETER) ERROR(2,lSts);
328 hEvent = (HANDLE)HKEY_CURRENT_USER;
329 lSts = RegNotifyChangeKeyValue(HKEY_CURRENT_USER, TRUE, REG_NOTIFY_CHANGE_NAME, hEvent, 1);
330 if (lSts != ERROR_INVALID_HANDLE) ERROR(3,lSts);
333 /******************************************************************************
334 * TestOpenKey
336 void TestOpenKey()
338 long lSts;
339 HKEY hkey;
341 lSts = RegOpenKey((HKEY)72, "",&hkey);
342 if (lSts != ERROR_SUCCESS) ERROR(1,lSts);
343 RegCloseKey(hkey);
345 lSts = RegOpenKey((HKEY)2, "regtest",&hkey);
346 if (lSts != ERROR_INVALID_HANDLE) ERROR(2,lSts);
348 lSts = RegOpenKey(HKEY_CURRENT_USER, "regtest",&hkey);
349 if (lSts != ERROR_FILE_NOT_FOUND) ERROR(3,lSts);
351 lSts = RegOpenKey(HKEY_CURRENT_USER, "\\regtest",&hkey);
352 if (lSts != ERROR_BAD_PATHNAME) ERROR(4,lSts);
355 /******************************************************************************
356 * TestOpenKeyEx
358 void TestOpenKeyEx()
360 long lSts;
361 HKEY hkey;
363 lSts = RegOpenKeyEx((HKEY)2,"",0,KEY_ALL_ACCESS,&hkey);
364 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
366 lSts = RegOpenKeyEx(HKEY_CURRENT_USER,"\\regtest",0,KEY_ALL_ACCESS,&hkey);
367 if (lSts != ERROR_BAD_PATHNAME) ERROR(2,lSts);
369 lSts = RegOpenKeyEx(HKEY_CURRENT_USER,"regtest",0,0,&hkey);
370 if (lSts != ERROR_FILE_NOT_FOUND) ERROR(3,lSts);
372 lSts = RegOpenKeyEx(HKEY_CURRENT_USER,"regtest\\",0,0,&hkey);
373 if (lSts != ERROR_FILE_NOT_FOUND) ERROR(4,lSts);
376 /******************************************************************************
377 * TestQueryInfoKey
379 void TestQueryInfoKey()
381 long lSts;
382 char *sClass;
383 unsigned long lClass;
384 unsigned long lSubKeys;
385 unsigned long lMaxSubLen;
386 unsigned long lMaxClassLen;
387 unsigned long lValues;
388 unsigned long lMaxValNameLen;
389 unsigned long lMaxValLen;
390 unsigned long lSecDescLen;
391 FILETIME ft;
393 lClass = 1;
394 sClass = (char *)malloc(lClass * sizeof(char));
396 lSts = RegQueryInfoKey((HKEY)2,sClass,&lClass,0,&lSubKeys,&lMaxSubLen,
397 &lMaxClassLen,&lValues,&lMaxValNameLen,&lMaxValLen,
398 &lSecDescLen, &ft);
399 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
401 lSts = RegQueryInfoKey(HKEY_CURRENT_USER,sClass,&lClass,0,&lSubKeys,
402 &lMaxSubLen,&lMaxClassLen,&lValues,&lMaxValNameLen,
403 &lMaxValLen,&lSecDescLen, &ft);
404 if (lSts != ERROR_SUCCESS) ERROR(2,lSts);
407 /******************************************************************************
408 * TestQueryValue
410 void TestQueryValue()
412 long lSts;
413 long lLen;
414 char *sVal;
416 sVal = (char *)malloc(80 * sizeof(char));
417 lLen = strlen(sVal);
419 lSts = RegQueryValue((HKEY)2,"",NULL,&lLen);
420 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
422 lSts = RegQueryValue(HKEY_CURRENT_USER,"",NULL,&lLen);
423 if (lSts != ERROR_SUCCESS) ERROR(2,lSts);
425 lSts = RegQueryValue(HKEY_CURRENT_USER,"\\regtest",NULL,&lLen);
426 if (lSts != ERROR_BAD_PATHNAME) ERROR(3,lSts);
428 lSts = RegQueryValue(HKEY_CURRENT_USER,"",sVal,&lLen);
429 if (lSts != ERROR_SUCCESS) ERROR(4,lSts);
432 /******************************************************************************
433 * TestQueryValueEx
435 void TestQueryValueEx()
437 char *sVal;
438 long lSts;
439 unsigned long lType;
440 unsigned long lLen;
442 lLen = 80;
443 sVal = (char *)malloc(lLen * sizeof(char));
445 lSts = RegQueryValueEx((HKEY)2,"",0,&lType,sVal,&lLen);
446 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
448 lSts = RegQueryValueEx(HKEY_CURRENT_USER,"",(LPDWORD)1,&lType,sVal,&lLen);
449 if (lSts != ERROR_INVALID_PARAMETER) ERROR(2,lSts);
451 lSts = RegQueryValueEx(HKEY_LOCAL_MACHINE,"",0,&lType,sVal,&lLen);
452 if (lSts != ERROR_SUCCESS) ERROR(3,lSts);
455 /******************************************************************************
456 * TestReplaceKey
458 void TestReplaceKey()
460 long lSts;
462 lSts = RegReplaceKey((HKEY)2,"","","");
463 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
465 #if CHECK_SAM
466 lSts = RegReplaceKey(HKEY_LOCAL_MACHINE,"","","");
467 if (lSts != ERROR_ACCESS_DENIED) ERROR(2,lSts);
469 lSts = RegReplaceKey(HKEY_LOCAL_MACHINE,"Software","","");
470 if (lSts != ERROR_ACCESS_DENIED) ERROR(3,lSts);
471 #endif
474 /******************************************************************************
475 * TestRestoreKey
477 void TestRestoreKey()
479 long lSts;
481 lSts = RegRestoreKey((HKEY)2,"",0);
482 if (lSts != ERROR_INVALID_PARAMETER) ERROR(1,lSts);
484 lSts = RegRestoreKey(HKEY_LOCAL_MACHINE,"",0);
485 if (lSts != ERROR_INVALID_PARAMETER) ERROR(2,lSts);
487 lSts = RegRestoreKey(HKEY_LOCAL_MACHINE,"a.a",0);
488 if (lSts != ERROR_FILE_NOT_FOUND) ERROR(3,lSts);
491 /******************************************************************************
492 * TestSaveKey
494 void TestSaveKey()
496 long lSts;
498 lSts = RegSaveKey((HKEY)2,"",NULL);
499 if (lSts != ERROR_INVALID_PARAMETER) ERROR(1,lSts);
501 lSts = RegSaveKey(HKEY_LOCAL_MACHINE,"",NULL);
502 if (lSts != ERROR_INVALID_PARAMETER) ERROR(2,lSts);
504 #if CHECK_SAM
505 lSts = RegSaveKey(HKEY_LOCAL_MACHINE,"a.a",NULL);
506 if (lSts != ERROR_PRIVILEGE_NOT_HELD) ERROR(3,lSts);
507 #endif
510 /******************************************************************************
511 * TestSetKeySecurity
513 void TestSetKeySecurity()
515 long lSts;
516 SECURITY_DESCRIPTOR sd;
518 lSts = RegSetKeySecurity((HKEY)2,0,NULL);
519 if (lSts != ERROR_INVALID_PARAMETER) ERROR(1,lSts);
521 lSts = RegSetKeySecurity(HKEY_LOCAL_MACHINE,0,NULL);
522 if (lSts != ERROR_INVALID_PARAMETER) ERROR(2,lSts);
524 lSts = RegSetKeySecurity(HKEY_LOCAL_MACHINE,OWNER_SECURITY_INFORMATION,NULL);
525 if (lSts != ERROR_INVALID_PARAMETER) ERROR(3,lSts);
527 lSts = RegSetKeySecurity(HKEY_LOCAL_MACHINE,OWNER_SECURITY_INFORMATION,&sd);
528 if (lSts != ERROR_INVALID_PARAMETER) ERROR(4,lSts);
531 /******************************************************************************
532 * TestSetValue
534 void TestSetValue()
536 #if MAKE_NT_CRASH
537 long lSts;
538 #endif
540 #if MAKE_NT_CRASH
541 lSts = RegSetValue((HKEY)2,"",0,NULL,0);
542 if (lSts != ERROR_INVALID_PARAMETER) ERROR(1,lSts);
543 #endif
545 #if MAKE_NT_CRASH
546 lSts = RegSetValue((HKEY)2,"regtest",0,NULL,0);
547 if (lSts != ERROR_INVALID_PARAMETER) ERROR(2,lSts);
548 #endif
550 #if MAKE_NT_CRASH
551 lSts = RegSetValue((HKEY)2,"regtest",REG_SZ,NULL,0);
552 if (lSts != ERROR_INVALID_HANDLE) ERROR(3,lSts);
553 #endif
555 #if MAKE_NT_CRASH
556 lSts = RegSetValue(HKEY_LOCAL_MACHINE,"regtest",REG_SZ,NULL,0);
557 if (lSts != ERROR_INVALID_HANDLE) ERROR(4,lSts);
558 #endif
561 /******************************************************************************
562 * TestSetValueEx
564 void TestSetValueEx()
566 long lSts;
568 lSts = RegSetValueEx((HKEY)2,"",0,0,NULL,0);
569 if (lSts != ERROR_INVALID_HANDLE) ERROR(1,lSts);
571 lSts = RegSetValueEx(HKEY_LOCAL_MACHINE,"",0,0,NULL,0);
572 if (lSts != ERROR_SUCCESS) ERROR(2,lSts);
575 /******************************************************************************
576 * TestUnLoadKey
578 void TestUnLoadKey()
580 #if CHECK_SAM
581 long lSts;
582 #endif
584 #if CHECK_SAM
585 lSts = RegUnLoadKey((HKEY)2,"");
586 if (lSts != ERROR_PRIVILEGE_NOT_HELD) ERROR(1,lSts);
588 lSts = RegUnLoadKey(HKEY_LOCAL_MACHINE,"");
589 if (lSts != ERROR_PRIVILEGE_NOT_HELD) ERROR(2,lSts);
591 lSts = RegUnLoadKey(HKEY_LOCAL_MACHINE,"\\regtest");
592 if (lSts != ERROR_PRIVILEGE_NOT_HELD) ERROR(3,lSts);
593 #endif
596 /******************************************************************************
597 * TestSequence1
599 void TestSequence1()
601 HKEY hkey;
602 long lSts;
604 lSts = RegCreateKey(HKEY_CURRENT_USER,"regtest",&hkey);
605 if (lSts != ERROR_SUCCESS) ERROR(1,lSts);
607 /* fprintf(stderr, " hkey=0x%x\n", hkey); */
609 lSts = RegDeleteKey(HKEY_CURRENT_USER, "regtest");
610 if (lSts != ERROR_SUCCESS) ERROR(2,lSts);
611 lSts = RegCloseKey(hkey);
612 if (lSts != ERROR_SUCCESS) ERROR(3,lSts);
616 int PASCAL WinMain (HANDLE inst, HANDLE prev, LPSTR cmdline, int show)
619 /* These can be in any order */
620 TestCloseKey();
621 TestConnectRegistry();
622 TestCreateKey();
623 TestCreateKeyEx();
624 TestDeleteKey();
625 TestDeleteValue();
626 TestEnumKey();
627 TestEnumKeyEx();
628 TestEnumValue();
629 TestFlushKey();
630 TestGetKeySecurity();
631 TestLoadKey();
632 TestNotifyChangeKeyValue();
633 TestOpenKey();
634 TestOpenKeyEx();
635 TestQueryInfoKey();
636 TestQueryValue();
637 TestQueryValueEx();
638 TestReplaceKey();
639 TestRestoreKey();
640 TestSaveKey();
641 TestSetKeySecurity();
642 TestSetValue();
643 TestSetValueEx();
644 TestUnLoadKey();
646 /* Now we have some sequence testing */
647 TestSequence1();
649 return 0;