1#! /usr/bin/perl -w 2 3use strict; 4use Test::More tests => 48; 5BEGIN {use_ok 'OS2::Process'} 6 7ok(SystemAtomTable(), 'SystemAtomTable succeeds'); 8my $tbl = CreateAtomTable; 9 10ok($tbl, 'CreateAtomTable succeeds'); 11 12is(AtomLength(133, $tbl), 6, 'AtomLength of unknown atom is 6'); 13is(AtomLength(1, $tbl), 6, 'AtomLength of unknown atom is 6'); 14ok(!defined eval {AtomLength(100000, $tbl); 1}, 'AtomLength of invalid atom croaks'); 15# diag($@); 16 17is(AtomUsage(134, $tbl), 65535, 'AtomUsage of unknown atom is 65535'); 18is(AtomUsage(1, $tbl), 65535, 'AtomUsage of unknown atom is 65535'); 19ok(!defined eval {AtomUsage(100000, $tbl); 1}, 'AtomUsage of invalid atom croaks'); 20# diag($@); 21 22is(AtomName(134, $tbl), '#134', 'AtomName of unknown atom is #number'); 23is(AtomName(2, $tbl), '#2', 'AtomName of unknown atom is #number'); 24ok(!defined eval {AtomName(100000, $tbl); 1}, 'AtomName of invalid atom croaks'); 25# diag($@); 26 27is(FindAtom('#134', $tbl), 134, 'Name of unknown atom per #number'); 28is(FindAtom('#2', $tbl), 2, 'Name of unknown atom per #number'); 29ok(!defined eval {FindAtom('#90000', $tbl); 1}, 'Finding invalid numeric atom croaks'); 30# diag($@); 31ok(!defined eval {FindAtom('2#', $tbl); 1}, 'Finding invalid atom croaks'); 32# diag($@); 33ok(!defined eval {FindAtom('texxt/unnknnown', $tbl); 1}, 'Finding invalid atom croaks'); 34# diag($@); 35 36is(DeleteAtom(125000, $tbl), '', 'Deleting invalid atom returns FALSE'); 37is(DeleteAtom(10000, $tbl), 1, 'Deleting unknown atom returns 1'); 38ok(!defined eval {DeleteAtom(0, $tbl); 1}, 'Deleting zero atom croaks'); 39# diag($@); 40 41is(AddAtom('#134', $tbl), 134, 'Add unknown atom per #number'); 42is(AddAtom('#2', $tbl), 2, 'Add unknown atom per #number'); 43ok(!defined eval {AddAtom('#80000', $tbl); 1}, 'Add invalid numeric atom croaks'); 44# diag($@); 45 46my $a1 = AddAtom("perltest//pp$$", $tbl); 47ok($a1, 'Add unknown atom per string'); 48my $a2 = AddAtom("perltest//p$$", $tbl); 49ok($a2, 'Add another unknown atom per string'); 50is(AddAtom("perltest//p$$", $tbl), $a2, 'Add same unknown atom per string'); 51isnt($a1, $a2, 'Different strings result in different atoms'); 52ok($a1 > 0, 'Atom positive'); 53ok($a2 > 0, 'Another atom positive'); 54ok($a1 < 0x10000, 'Atom small'); 55ok($a2 < 0x10000, 'Another atom small'); 56 57is(AtomLength($a1, $tbl), length "perltest//pp$$", 'AtomLength of known atom'); 58is(AtomLength($a2, $tbl), length "perltest//p$$", 'AtomLength of another known atom'); 59 60is(AtomUsage($a1, $tbl), 1, 'AtomUsage of known atom'); 61is(AtomUsage($a2, $tbl), 2, 'AtomUsage of another known atom'); 62 63is(AtomName($a1, $tbl), "perltest//pp$$", 'AtomName of known atom'); 64is(AtomName($a2, $tbl), "perltest//p$$", 'AtomName of another known atom'); 65 66is(FindAtom("perltest//pp$$", $tbl), $a1, 'Name of known atom'); 67is(FindAtom("perltest//p$$", $tbl), $a2, 'Name of known atom'); 68 69#$^E = 0; 70ok(DeleteAtom($a1, $tbl), 'DeleteAtom of known atom'); 71#diag("err=$^E"); 72#$^E = 0; 73ok(DeleteAtom($a2, $tbl), 'DeleteAtom of another known atom'); 74#diag("err=$^E"); 75 76ok(!defined eval {AtomUsage($a1, $tbl); 1}, 'AtomUsage of deleted known atom croaks'); 77# diag($@); 78is(AtomUsage($a2, $tbl), 1, 'AtomUsage of another known atom'); 79 80ok(!defined eval {AtomName($a1, $tbl); 1}, 'AtomName of deleted known atom croaks'); 81# diag($@); 82is(AtomName($a2, $tbl), "perltest//p$$", 'AtomName of undeleted another known atom'); 83 84ok(!defined eval {FindAtom("perltest//pp$$", $tbl); 1}, 'Finding known deleted atom croaks'); 85# diag($@); 86is(FindAtom("perltest//p$$", $tbl), $a2, 'Finding known undeleted atom'); 87 88ok(DestroyAtomTable($tbl), 'DestroyAtomTable succeeds'); 89