Nasm-X86 v20210403 Perl 5 v5.30.2 x86_64-linux-thread-multi

Status
Pass
From
Chris Williams (BINGOS)
Dist
Nasm-X86 v20210403
Platform
Perl 5 v5.30.2 x86_64-linux-thread-multi
Date
2021-04-06 15:05:59
ID
9841f770-96e9-11eb-84bc-edd243e66a77
This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--

Dear PRBRENAN,

This is a computer-generated error report created automatically by
CPANPLUS, version 0.9910. Testers personal comments may appear
at the end of this report.


Thank you for uploading your work to CPAN.  Congratulations!
All tests were successful.

TEST RESULTS:

Below is the error stack from stage 'make test':

Unable to confirm presence of command: nasm
 at /home/cpan/pit/jail/LMo42Pzz1t/lib/perl5/Data/Table/Text.pm line 4675, <DATA> line 269.
	Data::Table::Text::confirmHasCommandLineCommand("nasm") called at (eval 271) line 11
	eval 'use Time::HiRes qw(time);
use Test::More;

my $localTest = ((caller(1))[0]//\'Nasm::X86\') eq "Nasm::X86";                   # Local testing mode

Test::More->builder->output("/dev/null") if $localTest;                         # Reduce number of confirmation messages during testing

$ENV{PATH} = $ENV{PATH}.":/var/isde:sde";                                       # Intel emulator

if ($^O =~ m(bsd|linux)i)                                                       # Supported systems
 {if (confirmHasCommandLineCommand(q(nasm)) and                                 # Network assembler
      confirmHasCommandLineCommand(q(sde64)))                                   # Intel emulator
   {plan tests => 20;
   }
  else
   {plan skip_all =>qq(Nasm or Intel 64 emulator not available);
   }
 }
else
 {plan skip_all =>qq(Not supported on: $^O);
 }

my $start = time;                                                               # Tests

#goto latest;

if (1) {                                                                        #TExit #TPrintOutString #Tassemble #TStart
  Start;
  PrintOutString "Hello World";
  Exit;
  ok assemble =~ m(Hello World);
 }

if (1) {                                                                        #TMov #TComment #TRs #TPrintOutNl
  Start;
  Comment "Print a string from memory";
  my $s = "Hello World";
  my $m = Rs($s);
  Mov rsi, $m;
  PrintOutString rsi, length($s);
  Exit;
  ok assemble =~ m(Hello World);
 }

if (1) {                                                                        #TPrintOutRaxInHex #TXor
  Start;
  my $q = Rs(\'abababab\');
  Mov(rax, "[$q]");
  PrintOutString "rax: ";
  PrintOutRaxInHex;
  PrintOutNl;
  Xor rax, rax;
  PrintOutString "rax: ";
  PrintOutRaxInHex;
  PrintOutNl;
  Exit;
  ok assemble() =~ m(rax: 6261 6261 6261 6261.*rax: 0000 0000 0000 0000)s;
 }

if (1) {                                                                        #TPrintOutRegistersInHex #TLea
  Start;
  my $q = Rs(\'abababab\');
  Mov(rax, 1);
  Mov(rbx, 2);
  Mov(rcx, 3);
  Mov(rdx, 4);
  Mov(r8,  5);
  Lea r9,  "[rax+rbx]";
  PrintOutRegistersInHex;
  Exit;
  ok assemble() =~ m(r8: 0000 0000 0000 0005.*r9: 0000 0000 0000 0003.*rax: 0000 0000 0000 0001)s;
 }

if (1) {                                                                        #TVmovdqu32 #TVprolq  #TDs
  Start;
  my $q = Rs(\'a\'..\'z\');
  my $d = Ds(\'0\'x64);                                                           # Output area
  Vmovdqu32(xmm0, "[$q]");                                                      # Load
  Vprolq   (xmm0,   xmm0, 32);                                                  # Rotate double words in quad words
  Vmovdqu32("[$d]", xmm0);                                                      # Save
  PrintOutString($d, 16);
  Exit;
  ok assemble() =~ m(efghabcdmnopijkl)s;
 }

if (1) {
  Start;
  my $q = Rs((\'a\'..\'p\')x2);
  my $d = Ds(\'0\'x64);
  Vmovdqu32(ymm0, "[$q]");
  Vprolq   (ymm0,   ymm0, 32);
  Vmovdqu32("[$d]", ymm0);
  PrintOutString($d, 32);
  Exit;
  ok assemble() =~ m(efghabcdmnopijklefghabcdmnopijkl)s;
 }

if (1) {                                                                        #TPopR #TVmovdqu64
  Start;
  my $q = Rs((\'a\'..\'p\')x4);
  my $d = Ds(\'0\'x128);
  Vmovdqu32(zmm0, "[$q]");
  Vprolq   (zmm0,   zmm0, 32);
  Vmovdqu32("[$d]", zmm0);
  PrintOutString($d, 64);
  Sub rsp, 64;
  Vmovdqu64 "[rsp]", zmm0;
  PopR rax;
  PrintOutRaxInHex;
  Exit;
  ok assemble() =~ m(efghabcdmnopijklefghabcdmnopijklefghabcdmnopijklefghabcdmnopijkl)s;
 }

if (1) {                                                                        #TPrintOutRegisterInHex
  Start;
  my $q = Rs((\'a\'..\'p\')x4);
  Mov r8,"[$q]";
  PrintOutRegisterInHex r8;
  Exit;
  ok assemble() =~ m(r8: 6867 6665 6463 6261)s;
 }

if (1) {                                                                        #TVmovdqu8
  Start;
  my $q = Rs(\'a\'..\'p\');
  Vmovdqu8 xmm0, "[$q]";
  PrintOutRegisterInHex xmm0;
  Exit;
  ok assemble() =~ m(xmm0: 706F 6E6D 6C6B 6A69   6867 6665 6463 6261)s;
 }

if (1) {
  Start;
  my $q = Rs(\'a\'..\'p\', \'A\'..\'P\', );
  Vmovdqu8 ymm0, "[$q]";
  PrintOutRegisterInHex ymm0;
  Exit;
  ok assemble() =~ m(ymm0: 504F 4E4D 4C4B 4A49   4847 4645 4443 4241   706F 6E6D 6C6B 6A69   6867 6665 6463 6261)s;
 }

if (1) {
  Start;
  my $q = Rs((\'a\'..\'p\', \'A\'..\'P\') x 2);
  Vmovdqu8 zmm0, "[$q]";
  PrintOutRegisterInHex zmm0;
  Exit;
  ok assemble() =~ m(zmm0: 504F 4E4D 4C4B 4A49   4847 4645 4443 4241   706F 6E6D 6C6B 6A69   6867 6665 6463 6261   504F 4E4D 4C4B 4A49   4847 4645 4443 4241   706F 6E6D 6C6B 6A69   6867 6665 6463 6261)s;
 }

if (1) {                                                                        #TallocateMemory #TfreeMemory
  Start;
  my $N = 2048;
  my $n = Rq($N);
  my $q = Rs(\'a\'..\'p\');
  allocateMemory "[$n]";
  PrintOutRegisterInHex rax;
  Vmovdqu8 xmm0, "[$q]";
  Vmovdqu8 "[rax]", xmm0;
  PrintOutString rax,16;
  PrintOutNl;

  Mov rbx, rax;
  freeMemory rbx, "[$n]";
  PrintOutRegisterInHex rax;
  Vmovdqu8 "[rbx]", xmm0;
  Exit;
  ok assemble() =~ m(abcdefghijklmnop)s;
 }

if (1) {                                                                        #TreadTimeStampCounter
  Start;
  for(1..10)
   {readTimeStampCounter;
    PrintOutRegisterInHex rax;
   }
  Exit;
  my @s = split /\\n/, assemble();
  my @S = sort @s;
  is_deeply \\@s, \\@S;
 }

if (1) {                                                                        #TIf
  Start;
  Mov rax, 0;
  Test rax,rax;
  If
   {PrintOutRegisterInHex rax;
   } sub
   {PrintOutRegisterInHex rbx;
   };
  Mov rax, 1;
  Test rax,rax;
  If
   {PrintOutRegisterInHex rcx;
   } sub
   {PrintOutRegisterInHex rdx;
   };
  Exit;
  ok assemble() =~ m(rbx.*rcx)s;
 }

if (1) {                                                                        #TFork #TGetPid #TGetPPid #TWaitPid
  Start;                                                                        # Start the program
  Fork;                                                                         # Fork

  Test rax,rax;
  If                                                                            # Parent
   {Mov rbx, rax;
    WaitPid;
    PrintOutRegisterInHex rax;
    PrintOutRegisterInHex rbx;
    GetPid;                                                                     # Pid of parent as seen in parent
    Mov rcx,rax;
    PrintOutRegisterInHex rcx;
   }
  sub                                                                           # Child
   {Mov r8,rax;
    PrintOutRegisterInHex r8;
    GetPid;                                                                     # Child pid as seen in child
    Mov r9,rax;
    PrintOutRegisterInHex r9;
    GetPPid;                                                                    # Parent pid as seen in child
    Mov r10,rax;
    PrintOutRegisterInHex r10;
   };

  Exit;                                                                         # Return to operating system

  my $r = assemble();

#    r8: 0000 0000 0000 0000   #1 Return from fork as seen by child
#    r9: 0000 0000 0003 0C63   #2 Pid of child
#   r10: 0000 0000 0003 0C60   #3 Pid of parent from child
#   rax: 0000 0000 0003 0C63   #4 Return from fork as seen by parent
#   rbx: 0000 0000 0003 0C63   #5 Wait for child pid result
#   rcx: 0000 0000 0003 0C60   #6 Pid of parent

  if ($r =~ m(r8:( 0000){4}.*r9:(.*)\\s{5,}r10:(.*)\\s{5,}rax:(.*)\\s{5,}rbx:(.*)\\s{5,}rcx:(.*)\\s{2,})s)
   {ok $2 eq $4;
    ok $2 eq $5;
    ok $3 eq $6;
    ok $2 gt $6;
   }
 }

if (1) {                                                                        #TFork #TGetPid #TGetPPid #TWaitPid
  Start;                                                                        # Start the program
  GetUid;                                                                       # Userid
  PrintOutRegisterInHex rax;
  Exit;                                                                         # Return to operating system
  my $r = assemble();
  ok $r =~ m(rax:( 0000){3});
 }

latest:;

if (1) {                                                                        #TStat
  Start;                                                                        # Start the program
  my $f = Rs($0);                                                               # File to stat
  StatSize($f);                                                                 # Stat the file
  PrintOutRegisterInHex rax;
  Exit;                                                                         # Return to operating system
  my $r = assemble() =~ s( ) ()gsr;
  if ($r =~ m(rax:([0-9a-f]{16}))is)                                            # Compare file size obtained with that from fileSize()
   {is_deeply $1, sprintf("%016X", fileSize($0));
   }
 }

lll "Finished:", time - $start;
' called at /home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/4WYy5IQy2C/Nasm-X86-20210403/blib/lib/Nasm/X86.pm line 1846
	Nasm::X86::test() called at test.pl line 11
test.pl .. skipped: Nasm or Intel 64 emulator not available
Files=1, Tests=0,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.14 cusr  0.03 csys =  0.19 CPU)
Result: NOTESTS


PREREQUISITES:

Here is a list of prerequisites you specified and versions we
managed to load:

	  Module Name                        Have     Want
	  Asm::C                         20210330        0
	  Carp                               1.50        0
	  Data::Dump                         1.23        0
	  Data::Table::Text              20210328        0
	  Test2::API                     1.302183        0
	  Test::More                     1.302183        0
	  feature                            1.54        0

Perl module toolchain versions installed:
	Module Name                        Have
	CPANPLUS                         0.9910
	CPANPLUS::Dist::Build              0.90
	Cwd                                3.78
	ExtUtils::CBuilder             0.280236
	ExtUtils::Command                  7.60
	ExtUtils::Install                  2.20
	ExtUtils::MakeMaker                7.60
	ExtUtils::Manifest                 1.73
	ExtUtils::ParseXS                  3.40
	File::Spec                         3.78
	Module::Build                    0.4231
	Pod::Parser                        1.63
	Pod::Simple                        3.35
	Test2                          1.302183
	Test::Harness                      3.42
	Test::More                     1.302183
	version                          0.9928

******************************** NOTE ********************************
The comments above are created mechanically, possibly without manual
checking by the sender.  As there are many people performing automatic
tests on each upload to CPAN, it is likely that you will receive
identical messages about the same problem.

If you believe that the message is mistaken, please reply to the first
one with correction and/or additional informations, and do not take
it personally.  We appreciate your patience. :)
**********************************************************************

Additional comments:


This report was machine-generated by CPANPLUS::Dist::YACSmoke 1.08.
Powered by minismokebox version 0.68

CPANPLUS is prefering Build.PL

------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    LANG = C.UTF-8
    LC_COLLATE = C
    NONINTERACTIVE_TESTING = 1
    PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PERL5LIB = /home/cpan/pit/jail/LMo42Pzz1t/lib/perl5:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/YjpUPlLGKy/Data-Table-Text-20210328/blib/lib:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/YjpUPlLGKy/Data-Table-Text-20210328/blib/arch:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/yKXEJr8SAG/Asm-C-20210330/blib/lib:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/yKXEJr8SAG/Asm-C-20210330/blib/arch:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/4WYy5IQy2C/Nasm-X86-20210403/blib/lib:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/4WYy5IQy2C/Nasm-X86-20210403/blib/arch
    PERL5_CPANPLUS_IS_RUNNING = 29431
    PERL5_CPANPLUS_IS_VERSION = 0.9910
    PERL5_MINISMOKEBOX = 0.68
    PERL5_YACSMOKE_BASE = /home/cpan/pit/thr/conf/perl-5.30.2
    PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
    PERL_LOCAL_LIB_ROOT = /home/cpan/pit/jail/LMo42Pzz1t
    PERL_MB_OPT = --install_base "/home/cpan/pit/jail/LMo42Pzz1t"
    PERL_MM_OPT = INSTALL_BASE=/home/cpan/pit/jail/LMo42Pzz1t
    PERL_MM_USE_DEFAULT = 1
    SHELL = /bin/bash
    TERM = screen

Perl special variables (and OS-specific diagnostics, for MSWin32):

    Perl: $^X = /home/cpan/pit/thr/perl-5.30.2/bin/perl
    UID:  $<  = 1001
    EUID: $>  = 1001
    GID:  $(  = 1001 1001
    EGID: $)  = 1001 1001


-------------------------------


--

Summary of my perl5 (revision 5 version 30 subversion 2) configuration:
   
  Platform:
    osname=linux
    osvers=5.10.16-0-lts
    archname=x86_64-linux-thread-multi
    uname='linux agaric 5.10.16-0-lts #1-alpine smp wed, 17 feb 2021 08:17:06 utc x86_64 linux '
    config_args='-des -Dprefix=/home/cpan/pit/thr/perl-5.30.2 -Dusethreads'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='cc'
    ccflags ='-D_REENTRANT -D_GNU_SOURCE -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
    optimize='-O2'
    cppflags='-D_REENTRANT -D_GNU_SOURCE -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong'
    ccversion=''
    gccversion='10.2.1 20201203'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/include/fortify /usr/lib /usr/local/lib /lib/../lib /usr/lib/../lib /lib
    libs=-lpthread -lgdbm -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
    perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc
    libc=/usr/lib/libc.a
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_TIMES
    MULTIPLICITY
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_IMPLICIT_CONTEXT
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_ITHREADS
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
    USE_REENTRANT_API
    USE_THREAD_SAFE_LOCALE
  Locally applied patches:
    Devel::PatchPerl 2.08
  Built under linux
  Compiled at Mar 13 2021 03:59:35
  %ENV:
    PERL5LIB="/home/cpan/pit/jail/LMo42Pzz1t/lib/perl5:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/YjpUPlLGKy/Data-Table-Text-20210328/blib/lib:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/YjpUPlLGKy/Data-Table-Text-20210328/blib/arch:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/yKXEJr8SAG/Asm-C-20210330/blib/lib:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/yKXEJr8SAG/Asm-C-20210330/blib/arch:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/4WYy5IQy2C/Nasm-X86-20210403/blib/lib:/home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/4WYy5IQy2C/Nasm-X86-20210403/blib/arch"
    PERL5_CPANPLUS_IS_RUNNING="29431"
    PERL5_CPANPLUS_IS_VERSION="0.9910"
    PERL5_MINISMOKEBOX="0.68"
    PERL5_YACSMOKE_BASE="/home/cpan/pit/thr/conf/perl-5.30.2"
    PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
    PERL_LOCAL_LIB_ROOT="/home/cpan/pit/jail/LMo42Pzz1t"
    PERL_MB_OPT="--install_base "/home/cpan/pit/jail/LMo42Pzz1t""
    PERL_MM_OPT="INSTALL_BASE=/home/cpan/pit/jail/LMo42Pzz1t"
    PERL_MM_USE_DEFAULT="1"
  @INC:
    /home/cpan/pit/jail/LMo42Pzz1t/lib/perl5/5.30.2/x86_64-linux-thread-multi
    /home/cpan/pit/jail/LMo42Pzz1t/lib/perl5/5.30.2
    /home/cpan/pit/jail/LMo42Pzz1t/lib/perl5/x86_64-linux-thread-multi
    /home/cpan/pit/jail/LMo42Pzz1t/lib/perl5
    /home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/YjpUPlLGKy/Data-Table-Text-20210328/blib/lib
    /home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/YjpUPlLGKy/Data-Table-Text-20210328/blib/arch
    /home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/yKXEJr8SAG/Asm-C-20210330/blib/lib
    /home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/yKXEJr8SAG/Asm-C-20210330/blib/arch
    /home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/4WYy5IQy2C/Nasm-X86-20210403/blib/lib
    /home/cpan/pit/thr/conf/perl-5.30.2/.cpanplus/5.30.2/build/4WYy5IQy2C/Nasm-X86-20210403/blib/arch
    /home/cpan/pit/thr/perl-5.30.2/lib/site_perl/5.30.2/x86_64-linux-thread-multi
    /home/cpan/pit/thr/perl-5.30.2/lib/site_perl/5.30.2
    /home/cpan/pit/thr/perl-5.30.2/lib/5.30.2/x86_64-linux-thread-multi
    /home/cpan/pit/thr/perl-5.30.2/lib/5.30.2