xref: /openbsd-src/gnu/usr.bin/perl/os2/OS2/OS2-PrfDB/t/os2_prfdb.t (revision b39c515898423c8d899e35282f4b395f7cad3298)
1*b39c5158SmillertBEGIN {
2*b39c5158Smillert    chdir 't' if -d 't/lib';
3*b39c5158Smillert    @INC = '../lib' if -d 'lib';
4*b39c5158Smillert    require Config; import Config;
5*b39c5158Smillert    if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)PrfDB\b/) {
6*b39c5158Smillert	print "1..0\n";
7*b39c5158Smillert	exit 0;
8*b39c5158Smillert    }
9*b39c5158Smillert}
10*b39c5158Smillert
11*b39c5158Smillert# Before `make install' is performed this script should be runnable with
12*b39c5158Smillert# `make test'. After `make install' it should work as `perl test.pl'
13*b39c5158Smillert
14*b39c5158Smillert######################### We start with some black magic to print on failure.
15*b39c5158Smillert
16*b39c5158Smillert# Change 1..1 below to 1..last_test_to_print .
17*b39c5158Smillert# (It may become useful if the test is moved to ./t subdirectory.)
18*b39c5158Smillert
19*b39c5158SmillertBEGIN { $| = 1; print "1..48\n"; }
20*b39c5158SmillertEND {print "not ok 1\n" unless $loaded;}
21*b39c5158Smillertuse OS2::PrfDB;
22*b39c5158Smillert$loaded = 1;
23*b39c5158Smillertuse strict;
24*b39c5158Smillert
25*b39c5158Smillertprint "ok 1\n";
26*b39c5158Smillert
27*b39c5158Smillert######################### End of black magic.
28*b39c5158Smillert
29*b39c5158Smillert# Insert your test code below (better if it prints "ok 13"
30*b39c5158Smillert# (correspondingly "not ok 13") depending on the success of chunk 13
31*b39c5158Smillert# of the test code):
32*b39c5158Smillert
33*b39c5158Smillertmy $inifile = "my.ini";
34*b39c5158Smillert
35*b39c5158Smillertunlink $inifile if -w $inifile;
36*b39c5158Smillert
37*b39c5158Smillertmy $ini = OS2::Prf::Open($inifile);
38*b39c5158Smillertprint( ($ini ? "": "not "), "ok 2\n# HINI=`$ini'\n");
39*b39c5158Smillert
40*b39c5158Smillertprint( (OS2::Prf::GetLength($ini,'aaa', 'bbb') != -1) ?
41*b39c5158Smillert    "not ok 3\n# err: `$^E'\n" : "ok 3\n");
42*b39c5158Smillert
43*b39c5158Smillert
44*b39c5158Smillertprint( OS2::Prf::Set($ini,'aaa', 'bbb','xyz') ? "ok 4\n" :
45*b39c5158Smillert    "not ok 4\n# err: `$^E'\n");
46*b39c5158Smillert
47*b39c5158Smillertmy $len = OS2::Prf::GetLength($ini,'aaa', 'bbb');
48*b39c5158Smillertprint( $len == 3 ? "ok 5\n" : "not ok 5# len: `$len' err: `$^E'\n");
49*b39c5158Smillert
50*b39c5158Smillertmy $val = OS2::Prf::Get($ini,'aaa', 'bbb');
51*b39c5158Smillertprint( $val eq 'xyz' ? "ok 6\n" : "not ok 6# val: `$val' err: `$^E'\n");
52*b39c5158Smillert
53*b39c5158Smillert$val = OS2::Prf::Get($ini,'aaa', undef);
54*b39c5158Smillertprint( $val eq "bbb\0" ? "ok 7\n" : "not ok 7# val: `$val' err: `$^E'\n");
55*b39c5158Smillert
56*b39c5158Smillert$val = OS2::Prf::Get($ini, undef, undef);
57*b39c5158Smillertprint( $val eq "aaa\0" ? "ok 8\n" : "not ok 8# val: `$val' err: `$^E'\n");
58*b39c5158Smillert
59*b39c5158Smillertmy $res = OS2::Prf::Set($ini,'aaa', 'bbb',undef);
60*b39c5158Smillertprint( $res ? "ok 9\n" : "not ok 9# err: `$^E'\n");
61*b39c5158Smillert
62*b39c5158Smillert$val = OS2::Prf::Get($ini, undef, undef);
63*b39c5158Smillertprint( (! defined $val) ? "ok 10\n" : "not ok 10# val: `$val' err: `$^E'\n");
64*b39c5158Smillert
65*b39c5158Smillert$val = OS2::Prf::Get($ini,'aaa', undef);
66*b39c5158Smillertprint( (! defined $val) ? "ok 11\n" : "not ok 11# val: `$val' err: `$^E'\n");
67*b39c5158Smillert
68*b39c5158Smillertprint((OS2::Prf::Close($ini) ? "" : "not ") . "ok 12\n");
69*b39c5158Smillert
70*b39c5158Smillertmy $files = OS2::Prf::Profiles();
71*b39c5158Smillertprint( (defined $files) ? "ok 13\n" : "not ok 13# err: `$^E'\n");
72*b39c5158Smillertprint( (@$files == 2) ? "ok 14\n" : "not ok 14# `@$files' err: `$^E'\n");
73*b39c5158Smillertprint "# `@$files'\n";
74*b39c5158Smillert
75*b39c5158Smillert$ini = OS2::Prf::Open($inifile);
76*b39c5158Smillertprint( ($ini ? "": "not "), "ok 15\n# HINI=`$ini'\n");
77*b39c5158Smillert
78*b39c5158Smillert
79*b39c5158Smillertprint( OS2::Prf::Set($ini,'aaa', 'ccc','xyz') ? "ok 16\n" :
80*b39c5158Smillert    "not ok 16\n# err: `$^E'\n");
81*b39c5158Smillert
82*b39c5158Smillertprint( OS2::Prf::Set($ini,'aaa', 'ddd','123') ? "ok 17\n" :
83*b39c5158Smillert    "not ok 17\n# err: `$^E'\n");
84*b39c5158Smillert
85*b39c5158Smillertprint( OS2::Prf::Set($ini,'bbb', 'xxx','abc') ? "ok 18\n" :
86*b39c5158Smillert    "not ok 18\n# err: `$^E'\n");
87*b39c5158Smillert
88*b39c5158Smillertprint( OS2::Prf::Set($ini,'bbb', 'yyy','456') ? "ok 19\n" :
89*b39c5158Smillert    "not ok 19\n# err: `$^E'\n");
90*b39c5158Smillert
91*b39c5158SmillertOS2::Prf::Close($ini);
92*b39c5158Smillert
93*b39c5158Smillertmy %hash1;
94*b39c5158Smillert
95*b39c5158Smillerttie %hash1, 'OS2::PrfDB::Sub', $inifile, 'aaa';
96*b39c5158Smillert$OS2::PrfDB::Sub::debug = 1;
97*b39c5158Smillertprint "ok 20\n";
98*b39c5158Smillert
99*b39c5158Smillertmy @a1 = keys %hash1;
100*b39c5158Smillertprint (@a1 == 2 ? "ok 21\n" : "not ok 21\n# `@a1'\n");
101*b39c5158Smillert
102*b39c5158Smillertmy @a2 = sort @a1;
103*b39c5158Smillertprint ("@a2" eq "ccc ddd" ? "ok 22\n" : "not ok 22\n# `@a2'\n");
104*b39c5158Smillert
105*b39c5158Smillert$val = $hash1{ccc};
106*b39c5158Smillertprint ($val eq "xyz" ? "ok 23\n" : "not ok 23\n# `$val'\n");
107*b39c5158Smillert
108*b39c5158Smillert$val = $hash1{ddd};
109*b39c5158Smillertprint ($val eq "123" ? "ok 24\n" : "not ok 24\n# `$val'\n");
110*b39c5158Smillert
111*b39c5158Smillertprint (exists $hash1{ccc} ? "ok 25\n" : "not ok 25\n# `$val'\n");
112*b39c5158Smillert
113*b39c5158Smillertprint (!exists $hash1{hhh} ? "ok 26\n" : "not ok 26\n# `$val'\n");
114*b39c5158Smillert
115*b39c5158Smillert$hash1{hhh} = 12;
116*b39c5158Smillertprint (exists $hash1{hhh} ? "ok 27\n" : "not ok 27\n# `$val'\n");
117*b39c5158Smillert
118*b39c5158Smillert$val = $hash1{hhh};
119*b39c5158Smillertprint ($val eq "12" ? "ok 28\n" : "not ok 28\n# `$val'\n");
120*b39c5158Smillert
121*b39c5158Smillertdelete $hash1{ccc};
122*b39c5158Smillert
123*b39c5158Smillertuntie %hash1;
124*b39c5158Smillertprint "ok 29\n";
125*b39c5158Smillert
126*b39c5158Smillerttie %hash1, 'OS2::PrfDB::Sub', $inifile, 'aaa';
127*b39c5158Smillertprint "ok 30\n";
128*b39c5158Smillert
129*b39c5158Smillert@a1 = keys %hash1;
130*b39c5158Smillertprint (@a1 == 2 ? "ok 31\n" : "not ok 31\n# `@a1'\n");
131*b39c5158Smillert
132*b39c5158Smillert@a2 = sort @a1;
133*b39c5158Smillertprint ("@a2" eq "ddd hhh" ? "ok 32\n" : "not ok 32\n# `@a2'\n");
134*b39c5158Smillert
135*b39c5158Smillertprint (exists $hash1{hhh} ? "ok 33\n" : "not ok 33\n# `$val'\n");
136*b39c5158Smillert
137*b39c5158Smillert$val = $hash1{hhh};
138*b39c5158Smillertprint ($val eq "12" ? "ok 34\n" : "not ok 34\n# `$val'\n");
139*b39c5158Smillert
140*b39c5158Smillert%hash1 = ();
141*b39c5158Smillertprint "ok 35\n";
142*b39c5158Smillert
143*b39c5158Smillert%hash1 = ( hhh => 12, ddd => 5);
144*b39c5158Smillert
145*b39c5158Smillertuntie %hash1;
146*b39c5158Smillert
147*b39c5158Smillertmy %hash;
148*b39c5158Smillert
149*b39c5158Smillerttie %hash, 'OS2::PrfDB', $inifile;
150*b39c5158Smillertprint "ok 36\n";
151*b39c5158Smillert
152*b39c5158Smillert@a1 = keys %hash;
153*b39c5158Smillertprint (@a1 == 2 ? "ok 37\n" : "not ok 37\n# `@a1'\n");
154*b39c5158Smillert
155*b39c5158Smillert@a2 = sort @a1;
156*b39c5158Smillertprint ("@a2" eq "aaa bbb" ? "ok 38\n" : "not ok 38\n# `@a2'\n");
157*b39c5158Smillert
158*b39c5158Smillertprint (exists $hash{aaa} ? "ok 39\n" : "not ok 39\n# `$val'\n");
159*b39c5158Smillert
160*b39c5158Smillert$val = $hash{aaa};
161*b39c5158Smillertprint (ref $val eq "HASH" ? "ok 40\n" : "not ok 40\n# `$val'\n");
162*b39c5158Smillert
163*b39c5158Smillert%hash1 = %$val;
164*b39c5158Smillertprint "ok 41\n";
165*b39c5158Smillert
166*b39c5158Smillert@a1 = keys %hash1;
167*b39c5158Smillertprint (@a1 == 2 ? "ok 42\n" : "not ok 31\n# `@a1'\n");
168*b39c5158Smillert
169*b39c5158Smillert@a2 = sort @a1;
170*b39c5158Smillertprint ("@a2" eq "ddd hhh" ? "ok 43\n" : "not ok 43\n# `@a2'\n");
171*b39c5158Smillert
172*b39c5158Smillertprint (exists $hash1{hhh} ? "ok 44\n" : "not ok 44\n# `$val'\n");
173*b39c5158Smillert
174*b39c5158Smillert$val = $hash1{hhh};
175*b39c5158Smillertprint ($val eq "12" ? "ok 45\n" : "not ok 45\n# `$val'\n");
176*b39c5158Smillert
177*b39c5158Smillert$hash{nnn}{mmm} = 67;
178*b39c5158Smillertprint "ok 46\n";
179*b39c5158Smillert
180*b39c5158Smillertuntie %hash;
181*b39c5158Smillert
182*b39c5158Smillertmy %hash2;
183*b39c5158Smillert
184*b39c5158Smillerttie %hash2, 'OS2::PrfDB', $inifile;
185*b39c5158Smillertprint "ok 47\n";
186*b39c5158Smillert
187*b39c5158Smillertprint ($hash2{nnn}->{mmm} eq "67" ? "ok 48\n" : "not ok 48\n# `$val'\n");
188*b39c5158Smillert
189*b39c5158Smillertuntie %hash2;
190*b39c5158Smillertunlink $inifile;
191