⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 08create_function.t

📁 SinFP是一种新的识别对方计算机操作系统类型的工具
💻 T
字号:
use Test;BEGIN { plan tests => 18 }use DBI;sub now {    return time();}sub add2 {    my ( $a, $b ) = @_;    return $a + $b;}sub my_sum {    my $sum = 0;    foreach my $x (@_) {        $sum += $x;    }    return $sum;}sub error {    die "function is dying: ", @_, "\n";}sub void_return {}sub return2 {        return ( 1, 2 );}sub return_null {        return undef;}sub my_defined {#        warn("defined($_[0])\n");        return defined $_[0];}sub noop {        return $_[0];}my $dbh = DBI->connect("dbi:SQLite:dbname=foo", "", "", { PrintError => 0 } );ok($dbh);$dbh->func( "now", 0, \&now, "create_function" );my $result = $dbh->selectrow_arrayref( "SELECT now()" );ok( $result->[0] );$dbh->do( 'CREATE TEMP TABLE func_test ( a, b )' );$dbh->do( 'INSERT INTO func_test VALUES ( 1, 3 )' );$dbh->do( 'INSERT INTO func_test VALUES ( 0, 4 )' );$dbh->func( "add2", 2, \&add2, "create_function" );$result = $dbh->selectrow_arrayref( "SELECT add2(1,3)" );ok( $result->[0] == 4 );$result = $dbh->selectall_arrayref( "SELECT add2(a,b) FROM func_test" );ok( $result->[0][0] = 4  && $result->[1][0] == 4 );$dbh->func( "my_sum", -1, \&my_sum, "create_function" );$result = $dbh->selectrow_arrayref( "SELECT my_sum( '2', 3, 4, '5')" );ok( $result->[0] == 14 );$dbh->func( "error", -1, \&error, "create_function" );$result = $dbh->selectrow_arrayref( "SELECT error( 'I died' )" );ok( !$result );ok( $DBI::errstr =~ /function is dying: I died/ );$dbh->func( "void_return", -1, \&void_return, "create_function" );$result = $dbh->selectrow_arrayref( "SELECT void_return( 'I died' )" );ok( $result && !defined $result->[0] );$dbh->func( "return_null", -1, \&return_null, "create_function" );$result = $dbh->selectrow_arrayref( "SELECT return_null()" );ok( $result && !defined $result->[0] );$dbh->func( "return2", -1, \&return2, "create_function" );$result = $dbh->selectrow_arrayref( "SELECT return2()" );ok( $result &&  $result->[0] == 2 );$dbh->func( "my_defined", 1, \&my_defined, "create_function" );$result = $dbh->selectrow_arrayref( "SELECT my_defined(1)" );ok( $result &&  $result->[0] );$result = $dbh->selectrow_arrayref( "SELECT my_defined('')" );print "# Result: @$result\n";ok( $result &&  $result->[0] );$result = $dbh->selectrow_arrayref( "SELECT my_defined('abc')" );ok( $result &&  $result->[0] );$result = $dbh->selectrow_arrayref( "SELECT my_defined(NULL)" );ok( $result &&  !$result->[0] );$dbh->func( "noop", 1, \&noop, "create_function" );$result = $dbh->selectrow_arrayref( "SELECT noop(NULL)" );ok( $result &&  !defined $result->[0] );$result = $dbh->selectrow_arrayref( "SELECT noop(1)" );ok( $result &&  $result->[0] == 1);$result = $dbh->selectrow_arrayref( "SELECT noop('')" );ok( $result &&  $result->[0] eq '' );$result = $dbh->selectrow_arrayref( "SELECT noop(1.1)" );ok( $result &&  $result->[0] == 1.1 );$dbh->disconnect;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -