mirror of
https://github.com/postgres/postgres.git
synced 2025-10-08 00:03:59 -04:00
This creates a new test module src/test/modules/test_int128 and moves src/tools/testint128.c into it so that it can be built using the normal build system, allowing the 128-bit integer arithmetic functions in src/include/common/int128.h to be tested automatically. For now, the tests are skipped on platforms that don't have native int128 support. While at it, fix the test128 union in the test code: the "hl" member of test128 was incorrectly defined to be a union instead of a struct, which meant that the tests were only ever setting and checking half of each 128-bit integer value. Author: Dean Rasheed <dean.a.rasheed@gmail.com> Reviewed-by: John Naylor <johncnaylorls@gmail.com> Discussion: https://postgr.es/m/CAEZATCWgBMc9ZwKMYqQpaQz2X6gaamYRB+RnMsUNcdMcL2Mj_w@mail.gmail.com
28 lines
558 B
Perl
28 lines
558 B
Perl
# Copyright (c) 2025, PostgreSQL Global Development Group
|
|
|
|
# Test 128-bit integer arithmetic code in int128.h
|
|
|
|
use strict;
|
|
use warnings FATAL => 'all';
|
|
|
|
use PostgreSQL::Test::Utils;
|
|
use Test::More;
|
|
|
|
# Run the test program with 1M iterations
|
|
my $exe = "test_int128";
|
|
my $size = 1_000_000;
|
|
|
|
note "testing executable $exe";
|
|
|
|
my ($stdout, $stderr) = run_command([ $exe, $size ]);
|
|
|
|
SKIP:
|
|
{
|
|
skip "no native int128 type", 2 if $stdout =~ /skipping tests/;
|
|
|
|
is($stdout, "", "test_int128: no stdout");
|
|
is($stderr, "", "test_int128: no stderr");
|
|
}
|
|
|
|
done_testing();
|