view release on metacpan or search on metacpan
t/2024-doubly-fork.t view on Meta::CPAN
$list->add($i);
}
$list->remove_from_start;
$list->remove_from_end;
is($list->length, 9, 'list has 9 items');
my $pid = fork();
if ($pid == 0) {
# Child - verify copy is intact
my $len = $list->length;
# Do more operations in child
$list->add(999);
$list->remove_from_start;
exit($list->length == 9 ? 0 : 1);
} else {
waitpid($pid, 0);
my $status = $? >> 8;
t/3004-const-optimize.t view on Meta::CPAN
SKIP: {
eval { require B };
skip "B module not available", 1 if $@;
# This is a basic sanity check - a fully optimized c() with literal
# should become just a const op, not a full entersub
my $code = sub { const::c(42) };
my $cv = B::svref_2object($code);
my $root = $cv->ROOT;
# Just verify the code compiles and runs
my $result = $code->();
is($result, 42, 'c() in sub returns correct value');
}
done_testing;
t/4008-object-prototype-chain.t view on Meta::CPAN
object::set_prototype($a, $b);
# Trying to create a cycle should fail or be prevented
eval { object::set_prototype($b, $a) };
# Note: behavior may vary - some implementations allow cycles,
# others detect and prevent them
if ($@) {
like($@, qr/circular|cycle/i, 'circular prototype detected');
} else {
# If no error, verify it doesn't infinite loop on access
pass('circular prototype allowed (implementation choice)');
# Don't call prototype() in a loop to avoid hang
}
};
# ==== Prototype with Freeze/Lock ====
subtest 'frozen object as prototype' => sub {
object::define('FreezeProtoClass', 'value:Int');
t/4012-object-neuralnet.t view on Meta::CPAN
}
# Get final loss
my $final_loss = 0;
for my $sample (@data) {
my $pred = $net->predict($sample->[0]);
next unless defined $pred->[0] && $pred->[0] == $pred->[0]; # skip NaN
$final_loss += $net->loss_fn->mse->($pred, $sample->[1]);
}
# Just verify training ran without crashing and loss is finite
ok(defined $final_loss, 'training completed');
ok($final_loss == $final_loss, 'final loss is not NaN'); # NaN != NaN
# Test that predict returns valid output
my $out = $net->predict([1, 1]);
ok(ref($out) eq 'ARRAY', 'predict returns array');
ok(scalar(@$out) == 1, 'predict returns correct size');
ok(defined $out->[0], 'output is defined');
};
t/7026-nvec-quadmath-safety.t view on Meta::CPAN
is($single->median(), 42.5, 'median of single');
};
# ============================================
# Quadmath-specific precision tests
# ============================================
if ($is_quad) {
subtest 'quadmath: precision characteristics' => sub {
# Note: nvec may use double-precision internally even on quadmath perl
# These tests verify basic functionality works correctly
# Test that very small values are preserved
my $small = 1e-15;
my $v = nvec::new([$small]);
my $got = $v->get(0);
ok($got > 0, 'very small value preserved');
ok(approx_eq($got, $small, 1e-20), 'small value accurate');
# Test arithmetic with small values
my $a = nvec::new([1.0]);
t/7027-nvec-arithmetic-edge.t view on Meta::CPAN
# Values within 2 std of mean
my $lower = $mean - 2 * $std;
my $upper = $mean + 2 * $std;
my $gt_lower = $v->gt($lower);
my $lt_upper = $v->lt($upper);
my $in_range = $gt_lower->mul($lt_upper);
my $normal = $v->where($in_range);
# The number of values within range depends on std calculation (sample vs pop)
# and precision. Just verify we filtered something.
ok($normal->len() < $v->len(), 'some outliers were filtered');
ok($normal->len() >= 3, 'at least 3 normal values remain');
};
done_testing();
t/8000-file-basic.t view on Meta::CPAN
my $mtime2 = file::mtime($file);
ok($mtime2 >= $mtime1, 'mtime updated after touch');
};
# Test chmod
subtest 'chmod' => sub {
my $file = "$tmpdir/chmod_test.txt";
file::spew($file, "chmod test");
ok(file::chmod($file, 0644), 'chmod returns true');
# Mode check is platform-specific, just verify no error
};
# Test mkdir and rmdir
subtest 'mkdir and rmdir' => sub {
my $dir = "$tmpdir/newdir";
ok(file::mkdir($dir), 'mkdir returns true');
ok(file::is_dir($dir), 'created directory exists');
ok(!file::mkdir($dir), 'mkdir existing dir returns false');
t/8000-file-basic.t view on Meta::CPAN
my $content = "atomic content\nline 2";
ok(file::atomic_spew($file, $content), 'atomic_spew returns true');
ok(file::exists($file), 'file exists after atomic_spew');
is(file::slurp($file), $content, 'atomic_spew content correct');
};
# Test import (custom ops)
subtest 'import custom ops' => sub {
# This is tested implicitly - if the module loads, import works
# Let's verify the functions are available after import
my $file = "$tmpdir/import_test.txt";
file::spew($file, "import test");
# These should all work
ok(file::exists($file), 'exists works');
ok(file::is_file($file), 'is_file works');
is(file::size($file), 11, 'size works');
};
done_testing();
t/8002-file-custom-ops.t view on Meta::CPAN
my $op_basename = file_basename($file);
is($op_slurp, $method_slurp, 'slurp results match');
is($op_exists, $method_exists, 'exists results match');
is($op_size, $method_size, 'size results match');
is($op_is_file, $method_is_file, 'is_file results match');
is($op_basename, $method_basename, 'basename results match');
};
# ============================================
# Performance sanity check (just verify they work, not actual speed)
# ============================================
subtest 'custom ops in loops' => sub {
my $file = "$tmpdir/loop_test.txt";
file_spew($file, "loop content");
# Verify custom ops work in tight loops
my $count = 0;
for (1..100) {
if (file_exists($file)) {
t/8003-file-mmap.t view on Meta::CPAN
my $original = "Original content here";
file::spew($file, $original);
# Open for writing
my $mmap = file::mmap_open($file, 1); # 1 = writable
ok($mmap, 'writable mmap opened');
my $data = $mmap->data;
is($data, $original, 'initial data correct');
# Sync (just verify it doesn't crash)
$mmap->sync;
pass('sync completed');
$mmap->close;
};
# ============================================
# Multiple mmaps to same file
# ============================================
t/8013-file-hooks.t view on Meta::CPAN
return lc($data);
});
ok(file::has_hooks('write'), 'write hook registered');
my $testfile = "$tempdir/write_hook_test.txt";
file::spew($testfile, "HELLO WORLD");
file::clear_hooks('write');
# Read raw to verify transformation
my $content = file::slurp($testfile);
is($content, 'hello world', 'write hook transformed content');
};
subtest 'write hook can add prefix' => sub {
file::clear_hooks('write');
file::register_write_hook(sub {
my ($path, $data) = @_;
return "PREFIX: $data";
t/9012-cross-slot-util.t view on Meta::CPAN
# Test slot with util predicates
# Initialize slots
counter(0);
items([]);
# Test slot values with predicates
ok(is_num(counter()) ? 1 : 0, 'slot counter is number');
ok(is_array(items()) ? 1 : 0, 'slot items is array');
# Update and verify
counter(42);
is(counter(), 42, 'counter updated');
ok(is_num(counter()) ? 1 : 0, 'still a number after update');
# Test memoized function that uses slots
my $call_count = 0;
my $get_double = memo(sub {
my $n = shift;
$call_count++;
return $n * 2;
t/9015-cross-all-modules.t view on Meta::CPAN
# 8. Test const with object
my $const_item = new Item 99, const::c('immutable_value');
app_cache()->set('const_item', $const_item);
my $retrieved = app_cache()->get('const_item');
is($retrieved->value, 'immutable_value', 'const value in object in cache');
# 9. Use util to check types
ok(is_hash(app_config()) ? 1 : 0, 'util works with slot value');
# 10. Cleanup cache - verify no crashes
app_cache()->clear;
is(app_cache()->size, 0, 'cache cleared');
xs/const/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/const/ppport.h view on Meta::CPAN
VTBL_substr|5.005003||Viu
VTBL_sv|5.005003||Viu
VTBL_taint|5.005003||Viu
VTBL_uvar|5.005003||Viu
VTBL_vec|5.005003||Viu
vTHX|5.006000||Viu
VT_NATIVE|5.021004||Viu
vtohl|5.003007||Viu
vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
vwarn|5.006000|5.003007|
vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
xs/doubly/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/doubly/ppport.h view on Meta::CPAN
VTBL_substr|5.005003||Viu
VTBL_sv|5.005003||Viu
VTBL_taint|5.005003||Viu
VTBL_uvar|5.005003||Viu
VTBL_vec|5.005003||Viu
vTHX|5.006000||Viu
VT_NATIVE|5.021004||Viu
vtohl|5.003007||Viu
vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
vwarn|5.006000|5.003007|
vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
xs/file/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/file/ppport.h view on Meta::CPAN
VTBL_substr|5.005003||Viu
VTBL_sv|5.005003||Viu
VTBL_taint|5.005003||Viu
VTBL_uvar|5.005003||Viu
VTBL_vec|5.005003||Viu
vTHX|5.006000||Viu
VT_NATIVE|5.021004||Viu
vtohl|5.003007||Viu
vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
vwarn|5.006000|5.003007|
vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
xs/heap/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/heap/ppport.h view on Meta::CPAN
VTBL_substr|5.005003||Viu
VTBL_sv|5.005003||Viu
VTBL_taint|5.005003||Viu
VTBL_uvar|5.005003||Viu
VTBL_vec|5.005003||Viu
vTHX|5.006000||Viu
VT_NATIVE|5.021004||Viu
vtohl|5.003007||Viu
vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
vwarn|5.006000|5.003007|
vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
xs/lru/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/lru/ppport.h view on Meta::CPAN
VTBL_substr|5.005003||Viu
VTBL_sv|5.005003||Viu
VTBL_taint|5.005003||Viu
VTBL_uvar|5.005003||Viu
VTBL_vec|5.005003||Viu
vTHX|5.006000||Viu
VT_NATIVE|5.021004||Viu
vtohl|5.003007||Viu
vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
vwarn|5.006000|5.003007|
vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
xs/noop/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/noop/ppport.h view on Meta::CPAN
VTBL_substr|5.005003||Viu
VTBL_sv|5.005003||Viu
VTBL_taint|5.005003||Viu
VTBL_uvar|5.005003||Viu
VTBL_vec|5.005003||Viu
vTHX|5.006000||Viu
VT_NATIVE|5.021004||Viu
vtohl|5.003007||Viu
vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
vwarn|5.006000|5.003007|
vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
xs/nvec/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/nvec/ppport.h view on Meta::CPAN
VTBL_substr|5.005003||Viu
VTBL_sv|5.005003||Viu
VTBL_taint|5.005003||Viu
VTBL_uvar|5.005003||Viu
VTBL_vec|5.005003||Viu
vTHX|5.006000||Viu
VT_NATIVE|5.021004||Viu
vtohl|5.003007||Viu
vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
vwarn|5.006000|5.003007|
vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
xs/object/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/object/ppport.h view on Meta::CPAN
VTBL_substr|5.005003||Viu
VTBL_sv|5.005003||Viu
VTBL_taint|5.005003||Viu
VTBL_uvar|5.005003||Viu
VTBL_vec|5.005003||Viu
vTHX|5.006000||Viu
VT_NATIVE|5.021004||Viu
vtohl|5.003007||Viu
vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
vwarn|5.006000|5.003007|
vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
xs/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/ppport.h view on Meta::CPAN
VTBL_substr|5.005003||Viu
VTBL_sv|5.005003||Viu
VTBL_taint|5.005003||Viu
VTBL_uvar|5.005003||Viu
VTBL_vec|5.005003||Viu
vTHX|5.006000||Viu
VT_NATIVE|5.021004||Viu
vtohl|5.003007||Viu
vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
vwarn|5.006000|5.003007|
vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
xs/slot/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/slot/ppport.h view on Meta::CPAN
VTBL_substr|5.005003||Viu
VTBL_sv|5.005003||Viu
VTBL_taint|5.005003||Viu
VTBL_uvar|5.005003||Viu
VTBL_vec|5.005003||Viu
vTHX|5.006000||Viu
VT_NATIVE|5.021004||Viu
vtohl|5.003007||Viu
vtohs|5.003007||Viu
VUTIL_REPLACE_CORE|5.019008||Viu
vverify|5.009003|5.009003|
VVERIFY|5.019008||Viu
vwarn|5.006000|5.003007|
vwarner|5.006000|5.004000|p
wait4pid|5.003007||Viu
wait|5.005000||Viu
want_vtbl_bm|5.015000||Viu
want_vtbl_fm|5.015000||Viu
warn|5.003007||vV
WARN_ALL|5.006000|5.003007|p
WARN_ALLstring|5.006000||Viu
xs/util/ppport.h view on Meta::CPAN
The default namespace is C<DPPP_>.
=back
The good thing is that most of the above can be checked by running
F<ppport.h> on your source code. See the next section for
details.
=head1 EXAMPLES
To verify whether F<ppport.h> is needed for your module, whether you
should make any changes to your code, and whether any special defines
should be used, F<ppport.h> can be run as a Perl script to check your
source code. Simply say:
perl ppport.h
The result will usually be a list of patches suggesting changes
that should at least be acceptable, if not necessarily the most
efficient solution, or a fix for all possible problems.
xs/util/ppport.h view on Meta::CPAN
vform||5.006000|
visit|||
vivify_defelem|||
vivify_ref|||
vload_module|5.006000||p
vmess||5.006000|
vnewSVpvf|5.006000|5.004000|p
vnormal||5.009002|
vnumify||5.009000|
vstringify||5.009000|
vverify||5.009003|
vwarner||5.006000|
vwarn||5.006000|
wait4pid|||
warn_nocontext|||vn
warner_nocontext|||vn
warner|5.006000|5.004000|pv
warn|||v
watch|||
whichsig|||
write_no_mem|||
xt/c-compat.t view on Meta::CPAN
# Skip checks marked to skip
next if $check->{skip_functions};
if ($content =~ $check->{pattern}) {
# For negative patterns, skip if the negative pattern matches
if ($check->{negative_pattern}) {
next if $content =~ $check->{negative_pattern};
}
# For patterns with required_guards, verify all guards are present
if ($check->{required_guards}) {
my $all_guards_present = 1;
for my $guard (@{$check->{required_guards}}) {
unless ($content =~ $guard) {
$all_guards_present = 0;
last;
}
}
next if $all_guards_present; # Properly guarded, skip
}
# For files using true/false, verify compat header
if ($check->{requires_compat} && !$is_compat) {
next if $has_compat;
# Also check if it's in a compat-included header chain
next if $file =~ /\.h$/ && $content =~ /_compat\.h/;
}
push @issues, {
file => $rel_file,
check => $check_name,
severity => $check->{severity},