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