| #!/usr/bin/env perl | |
| # Copyright (C) 2018 Bocoup LLC. All rights reserved. | |
| # | |
| # Redistribution and use in source and binary forms, with or without | |
| # modification, are permitted provided that the following conditions | |
| # are met: | |
| # | |
| # 1. Redistributions of source code must retain the above | |
| # copyright notice, this list of conditions and the following | |
| # disclaimer. | |
| # 2. Redistributions in binary form must reproduce the above | |
| # copyright notice, this list of conditions and the following | |
| # disclaimer in the documentation and/or other materials | |
| # provided with the distribution. | |
| # | |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY | |
| # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
| # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
| # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE | |
| # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, | |
| # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
| # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |
| # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR | |
| # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF | |
| # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
| # SUCH DAMAGE. | |
| use strict; | |
| use warnings; | |
| use 5.8.8; | |
| use FindBin; | |
| use Config; | |
| sub build_flatpak_args | |
| { | |
| my $type; | |
| my $args = (); | |
| for my $argv (@_) { | |
| next if $argv eq "--no-flatpak-check"; | |
| next if $argv eq "--wpe" || $argv eq "--gtk"; | |
| if ($argv eq "--release" || $argv eq "--debug") { | |
| $type = ucfirst(substr($argv, 2)); | |
| next; | |
| } | |
| $args->{$argv} = ""; | |
| } | |
| if (!exists($args->{"--jsc"})) { | |
| $args->{"--jsc"} = "/app/webkit/WebKitBuild/$type/bin/jsc"; | |
| } | |
| return %$args; | |
| } | |
| BEGIN { | |
| use lib $FindBin::Bin; | |
| use File::Spec::Functions qw(catfile); | |
| my $want_jhbuild = 0; | |
| if (defined $ENV{'WEBKIT_JHBUILD'}) { | |
| $want_jhbuild = $ENV{'WEBKIT_JHBUILD'}; | |
| } | |
| my $osName = $Config{osname}; | |
| if (!$want_jhbuild && $osName eq "linux" && !grep(/^--no-flatpak-check$/, @ARGV)) { | |
| if (eval {require webkitdirs; 1;}) { | |
| webkitdirs->import(qw(shouldUseFlatpak runInFlatpak sourceDir)); | |
| if (shouldUseFlatpak()) { | |
| print "Running in flatpak based environment\n"; | |
| my @command = (File::Spec->catfile(sourceDir(), "Tools", "Scripts", "test262-runner")); | |
| # Prevent exec'd test262-runner process from importing | |
| # webkitdirs so that it can succeed later on in the Runner | |
| # module... Perl. ¯\_(ツ)_/¯ | |
| push(@ARGV, "--no-flatpak-check"); | |
| runInFlatpak(@command); | |
| } | |
| } | |
| } | |
| } | |
| BEGIN { | |
| $ENV{DBIC_OVERWRITE_HELPER_METHODS_OK} = 1; | |
| $ENV{T262_EXEC_BIN} = "$FindBin::Bin/test262"; | |
| unshift @INC, "$FindBin::Bin/test262"; | |
| $ENV{LOAD_ROUTES} = 1; | |
| } | |
| if (grep(/^--no-flatpak-check$/, @ARGV)) { | |
| @ARGV = build_flatpak_args(@ARGV); | |
| } | |
| use Runner; | |
| Test262::Runner::main(); |