;#============================================================================= ;# File: subs.pm ;# Author: Dave Oberholtzer, (daveo@obernet.com) ;# Copyright (c)2005, David Oberholtzer ;# Date: 2001/03/23 ;# Use: Testing subroutines for: ;# FameHLI::API functions and ;# FameHLI::API::EXT functions ;#============================================================================= use FileHandle; ;#============================================================================= ;# N U M D A T A ;#============================================================================= ;# Standardized data for numeric (and boolean) testing. ;# (Note that boolean will be (T, T, F, T, T, T, T, T).) ;#============================================================================= sub NumData { return(-2.2, -1.1, 0, 1.1, 2.2, 3.3, 4.4, 5.5); } ;#============================================================================= ;# P R E C D A T A ;#============================================================================= ;# ;#============================================================================= sub PrecData { return(NumData()); } ;#============================================================================= ;# B O O L D A T A ;#============================================================================= ;# ;#============================================================================= sub BoolData { return(NumData()); } ;#============================================================================= ;# D A T E D A T A ;#============================================================================= ;# Standardized data for date (and string) testing. ;# (Note that strings will simply be the string of digits.) ;#============================================================================= sub DateData { return(38000, 38001, 38002, 38003, 38100, 38200, 38300); } ;#============================================================================= ;# S T R I N G D A T A ;#============================================================================= ;# ;#============================================================================= sub StringData { return(DateData()); } ;#============================================================================= ;# StartTest ;#============================================================================= sub StartTest { my $name = shift; my $fh = new FileHandle(">${name}.log"); $name .= " ......................."; $name = substr($name, 0, 20) . " "; ;# printf("%s", $name); printf($fh "File Test: %s\n", $name); return($fh); } ;#============================================================================= ;# GetVars ;#============================================================================= sub GetVars { my $vars; $vars->{hostname} = "localhost"; $vars->{service} = "mcadbs"; $vars->{username} = ""; $vars->{password} = ""; $vars->{siteserver} = "mcaserv\@localhost"; @dirs = ('./.', './..', './../..', './../../..'); foreach (@dirs) { if (-f "$_/PWD") { open (PWD, "$_/PWD") or die("$_/PWD is not readable: $!"); while () { chomp; 1 while s/^\s//; 1 while s/\s$//; next if /^\#/; next if /^$/; next if /^;/; my ($l,$r) = split(/=/); $l =~ tr/A-Z/a-z/; $vars->{$l} = $r; } printf("Service:%s\@%s, User:%s, Pwd:%s, SiteServer:%s\n", $vars->{service}, $vars->{hostname}, $vars->{username}, $vars->{password}, $vars->{siteserver}); close(PWD); last; } } return($vars); } ;#============================================================================= ;# ShowResults ;#============================================================================= sub ShowResults { my $log = shift; my $level = shift; my $expect = shift; my $name = shift; my $rc = shift; my @printargs = @_; my $i; return if ($rc == 999); $name .= " ......................."; $name = substr($name, 0, 20) . " "; ++$test::num; printf($log "%3d) %s", $test::num, $name); if ($rc ne $expect) { if ($level eq 1) { $err++; print($log "failed\n"); printf($log "\tResponse: '%s'\n", FameHLI::API::EXT::ErrDesc($rc)); printf($log "\tExpected: '%s'\n", FameHLI::API::EXT::ErrDesc($expect)); } elsif ($level eq 2) { $warn++; print($log "failed (Probably not important)\n"); printf($log "\t=== %s\n", FameHLI::API::EXT::ErrDesc($rc)); } else { printf($log "ignored: %s\n", FameHLI::API::EXT::ErrDesc($rc)); } print($log "failed\n"); print("not "); # < < = = = = = = N O T E = = = = < < print($log "not "); # < < = = = = = = N O T E = = = = < < } else { print($log "ok"); if (@printargs) { for ($i=0; $i<=$#printargs; $i++) { if (!defined($printargs[$i])) { $printargs[$i] = ""; } elsif ($printargs[$i] eq "0") { ;# nada... } elsif ($printargs[$i]) { ;# nada... } else { $printargs[$i] = ""; } } print($log " ("); printf($log @printargs); print($log ")"); } print($log "\n"); } print("ok $test::num\n"); print($log "ok $test::num\n"); } 1;