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

📄 leak.t

📁 source of perl for linux application,
💻 T
字号:
#!/usr/bin/perl -w# Test for memory leaks.# XXX TODO: This test file doesn't actually seem to work! If you remove# the sv_2mortal() in the XS file, it still happily passes all tests...use Test::More;use strict;BEGIN  {  $| = 1;  chdir 't' if -d 't';  unshift @INC, ('../lib', '../blib/arch');	# for running manually  plan tests => 22;  }use Math::BigInt::FastCalc;#############################################################################package Math::BigInt::FastCalc::LeakCheck;use base qw(Math::BigInt::FastCalc);my $destroyed = 0;sub DESTROY { $destroyed++; }#############################################################################package main;for my $method (qw(_zero _one _two _ten))  {  $destroyed = 0;    {    my $num = Math::BigInt::FastCalc::LeakCheck->$method();    bless $num, "Math::BigInt::FastCalc::LeakCheck";    }  is ($destroyed, 1, "$method does not leak memory");  }my $num = Math::BigInt::FastCalc->_zero();for my $method (qw(_is_zero _is_one _is_two _is_ten _num))  {  $destroyed = 0;    {    my $rc = Math::BigInt::FastCalc->$method($num);    bless \$rc, "Math::BigInt::FastCalc::LeakCheck";    }  is ($destroyed, 1, "$method does not leak memory");  }my $num_10 = Math::BigInt::FastCalc->_ten();my $num_2 = Math::BigInt::FastCalc->_two();my $num_long   = Math::BigInt::FastCalc->_new("1234567890");my $num_long_2 = Math::BigInt::FastCalc->_new("12345678900987654321");is (Math::BigInt::FastCalc->_str($num_long), "1234567890");is (Math::BigInt::FastCalc->_str($num_long_2), "12345678900987654321");# to hit all possible code branches_test_acmp($num, $num);_test_acmp($num_10, $num_10);_test_acmp($num, $num_10);_test_acmp($num_10, $num);_test_acmp($num, $num_2);_test_acmp($num_2, $num);_test_acmp($num_long, $num);_test_acmp($num, $num_long);_test_acmp($num_long, $num_long);_test_acmp($num_long, $num_long_2);_test_acmp($num_long_2, $num_long);sub _test_acmp  {  my ($n1,$n2) = @_;  $destroyed = 0;    {    my $rc = Math::BigInt::FastCalc->_acmp($n1,$n2);    bless \$rc, "Math::BigInt::FastCalc::LeakCheck";    }  my $n_1 = Math::BigInt::FastCalc->_str($n1);  my $n_2 = Math::BigInt::FastCalc->_str($n2);  is ($destroyed, 1, "_acmp($n_1,$n_2) does not leak memory");  }

⌨️ 快捷键说明

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