#!/usr/bin/env perl

# Copyright (c) 2015-2019 Christian Jaeger, copying@christianjaeger.ch
# This is free software. See the file COPYING.md that came bundled
# with this file.

use strict; use warnings; use warnings FATAL => 'uninitialized';

require "./meta/test.pl";

require "./meta/find-perl.pl";

use Test::More;

require "./testmem.pl";
setlimit_mem_MB ($^V->{version}[1] < 15 ? 30 : 80);

is readin("perl t/perl/weaken-coderef 2 50000 |"),
  "3\n";

my $n= $ENV{N} // 80000;
my $res= ($ENV{RES} // 3200040000)."\n";

is readin("perl t/perl/weaken-coderef $n 1 |"),
  $res;

SKIP: {
    skip "Perl issue", 3 unless $ENV{TEST_PERL};
    # XXX is this really a perl issue?

    is readin("perl t/perl/weaken-coderef-alternative-fix Y $n 1 |"),
      $res;

    is readin("perl t/perl/weaken-coderef-alternative-fix rec $n 1 |"),
      $res;

    is readin("perl t/perl/weaken-coderef-alternative-fix haskell_uncurried $n 1 |"),
      $res;

    is readin("perl t/perl/weaken-coderef-alternative-fix '' $n 1 |"),
      $res;

}

done_testing;
