diff options
Diffstat (limited to 'perl/t/lib/Util.pm')
-rw-r--r-- | perl/t/lib/Util.pm | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/perl/t/lib/Util.pm b/perl/t/lib/Util.pm new file mode 100644 index 0000000..6566ca4 --- /dev/null +++ b/perl/t/lib/Util.pm @@ -0,0 +1,67 @@ +# Util -- Utility class for wallet tests. +# $Id$ +# +# Written by Russ Allbery <rra@stanford.edu> +# Copyright 2007 Board of Trustees, Leland Stanford Jr. University +# +# See LICENSE for licensing terms. + +package Util; +require 5.006; + +use strict; +use vars qw(@ISA @EXPORT $VERSION); + +use Wallet::Config; + +# This version should be increased on any code change to this module. Always +# use two digits for the minor version with a leading zero if necessary so +# that it will sort properly. +$VERSION = '0.01'; + +use Exporter (); +@ISA = qw(Exporter); +@EXPORT = qw(contents db_setup); + +############################################################################## +# General utility functions +############################################################################## + +# Returns the one-line contents of a file as a string, removing the newline. +sub contents { + my ($file) = @_; + open (FILE, '<', $file) or die "cannot open $file: $!\n"; + my $data = <FILE>; + close FILE; + chomp $data; + return $data; +} + +############################################################################## +# User test configuration +############################################################################## + +# Set up the database configuration parameters. Use a local SQLite database +# for testing by default, but support t/data/test.database as a configuration +# file to use another database backend. +sub db_setup { + if (-f 't/data/test.database') { + open (DB, '<', 't/data/test.database') + or die "cannot open t/data/test.database: $!"; + my $driver = <DB>; + my $info = <DB>; + my $user = <DB>; + my $password = <DB>; + chomp ($driver, $info); + chomp $user if $user; + chomp $password if $password; + $Wallet::Config::DB_DRIVER = $driver; + $Wallet::Config::DB_INFO = $info; + $Wallet::Config::DB_USER = $user if $user; + $Wallet::Config::DB_PASSWORD = $password if $password; + } else { + $Wallet::Config::DB_DRIVER = 'SQLite'; + $Wallet::Config::DB_INFO = 'wallet-db'; + unlink 'wallet-db'; + } +} |