exiftool-vendored.exe 12.80.0 → 12.82.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/bin/exiftool.exe +0 -0
- package/bin/exiftool_files/Changes +44 -0
- package/bin/exiftool_files/Licenses_Strawberry_Perl.zip +0 -0
- package/bin/exiftool_files/README +3 -2
- package/bin/exiftool_files/exiftool.pl +36 -14
- package/bin/exiftool_files/lib/Archive/Zip/Archive.pm +399 -65
- package/bin/exiftool_files/lib/Archive/Zip/DirectoryMember.pm +1 -1
- package/bin/exiftool_files/lib/Archive/Zip/FileMember.pm +1 -1
- package/bin/exiftool_files/lib/Archive/Zip/Member.pm +499 -195
- package/bin/exiftool_files/lib/Archive/Zip/NewFileMember.pm +1 -1
- package/bin/exiftool_files/lib/Archive/Zip/StringMember.pm +2 -2
- package/bin/exiftool_files/lib/Archive/Zip/ZipFileMember.pm +79 -20
- package/bin/exiftool_files/lib/Archive/Zip.pm +179 -29
- package/bin/exiftool_files/lib/AutoLoader.pm +453 -0
- package/bin/exiftool_files/lib/B/Deparse.pm +209 -137
- package/bin/exiftool_files/lib/B.pm +1 -1
- package/bin/exiftool_files/lib/Benchmark.pm +1123 -0
- package/bin/exiftool_files/lib/Class/Struct.pm +2 -2
- package/bin/exiftool_files/lib/Compress/Raw/Bzip2.pm +14 -9
- package/bin/exiftool_files/lib/Compress/Raw/Lzma.pm +982 -0
- package/bin/exiftool_files/lib/Compress/Raw/Zlib.pm +91 -86
- package/bin/exiftool_files/lib/Compress/Zlib.pm +105 -100
- package/bin/exiftool_files/lib/Config.pm +9 -9
- package/bin/exiftool_files/lib/Config_heavy.pl +36 -33
- package/bin/exiftool_files/lib/CryptX.pm +2 -82
- package/bin/exiftool_files/lib/Data/Dumper.pm +2 -2
- package/bin/exiftool_files/lib/Digest/MD5.pm +12 -9
- package/bin/exiftool_files/lib/Digest/Perl/MD5.pm +1 -191
- package/bin/exiftool_files/lib/Digest/base.pm +26 -20
- package/bin/exiftool_files/lib/DynaLoader.pm +7 -4
- package/bin/exiftool_files/lib/Encode.pm +3 -3
- package/bin/exiftool_files/lib/Errno.pm +13 -13
- package/bin/exiftool_files/lib/Exporter/Heavy.pm +2 -2
- package/bin/exiftool_files/lib/Exporter.pm +1 -1
- package/bin/exiftool_files/lib/ExtUtils/Command/MM.pm +323 -0
- package/bin/exiftool_files/lib/ExtUtils/Command.pm +382 -0
- package/bin/exiftool_files/lib/File/Find.pm +1 -1
- package/bin/exiftool_files/lib/File/Glob.pm +1 -8
- package/bin/exiftool_files/lib/File/GlobMapper.pm +2 -2
- package/bin/exiftool_files/lib/File/HomeDir/Darwin/Carbon.pm +2 -40
- package/bin/exiftool_files/lib/File/HomeDir/Darwin/Cocoa.pm +2 -34
- package/bin/exiftool_files/lib/File/HomeDir/Darwin.pm +2 -28
- package/bin/exiftool_files/lib/File/HomeDir/Driver.pm +2 -35
- package/bin/exiftool_files/lib/File/HomeDir/FreeDesktop.pm +2 -62
- package/bin/exiftool_files/lib/File/HomeDir/MacOS9.pm +2 -53
- package/bin/exiftool_files/lib/File/HomeDir/Test.pm +2 -43
- package/bin/exiftool_files/lib/File/HomeDir/Unix.pm +2 -53
- package/bin/exiftool_files/lib/File/HomeDir/Windows.pm +2 -69
- package/bin/exiftool_files/lib/File/HomeDir.pm +5 -416
- package/bin/exiftool_files/lib/File/Path.pm +3 -3
- package/bin/exiftool_files/lib/File/Spec/Win32.pm +2 -2
- package/bin/exiftool_files/lib/File/Temp.pm +70 -35
- package/bin/exiftool_files/lib/File/Which.pm +1 -240
- package/bin/exiftool_files/lib/File/stat.pm +3 -2
- package/bin/exiftool_files/lib/IO/Compress/Adapter/Bzip2.pm +16 -17
- package/bin/exiftool_files/lib/IO/Compress/Adapter/Deflate.pm +19 -20
- package/bin/exiftool_files/lib/IO/Compress/Base/Common.pm +5 -5
- package/bin/exiftool_files/lib/IO/Compress/Base.pm +35 -26
- package/bin/exiftool_files/lib/IO/Compress/Brotli.pm +159 -0
- package/bin/exiftool_files/lib/IO/Compress/Bzip2.pm +50 -25
- package/bin/exiftool_files/lib/IO/Compress/Gzip/Constants.pm +6 -6
- package/bin/exiftool_files/lib/IO/Compress/Gzip.pm +58 -32
- package/bin/exiftool_files/lib/IO/Compress/RawDeflate.pm +63 -38
- package/bin/exiftool_files/lib/IO/Compress/Zlib/Extra.pm +20 -20
- package/bin/exiftool_files/lib/IO/Dir.pm +1 -1
- package/bin/exiftool_files/lib/IO/File.pm +1 -1
- package/bin/exiftool_files/lib/IO/Handle.pm +1 -21
- package/bin/exiftool_files/lib/IO/Pipe.pm +1 -1
- package/bin/exiftool_files/lib/IO/Seekable.pm +1 -1
- package/bin/exiftool_files/lib/IO/Select.pm +16 -2
- package/bin/exiftool_files/lib/IO/Socket/INET.pm +14 -9
- package/bin/exiftool_files/lib/IO/Socket/UNIX.pm +17 -1
- package/bin/exiftool_files/lib/IO/Socket.pm +474 -126
- package/bin/exiftool_files/lib/IO/String.pm +425 -0
- package/bin/exiftool_files/lib/IO/Uncompress/Adapter/Inflate.pm +13 -14
- package/bin/exiftool_files/lib/IO/Uncompress/Base.pm +142 -132
- package/bin/exiftool_files/lib/IO/Uncompress/Brotli.pm +119 -0
- package/bin/exiftool_files/lib/IO/Uncompress/Gunzip.pm +43 -37
- package/bin/exiftool_files/lib/IO/Uncompress/RawInflate.pm +49 -43
- package/bin/exiftool_files/lib/IO.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +44 -31
- package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +20 -7
- package/bin/exiftool_files/lib/Image/ExifTool/GM.pm +543 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +332 -149
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +9 -4
- package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +32 -4
- package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +331 -22
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +55 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +1 -0
- package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +21 -3
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +40 -24
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +61 -30
- package/bin/exiftool_files/lib/Image/ExifTool/README +2 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +4815 -4775
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +931 -617
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +30 -8
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +10 -4
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +4 -2
- package/bin/exiftool_files/lib/Image/ExifTool.pm +77 -41
- package/bin/exiftool_files/lib/Image/ExifTool.pod +24 -11
- package/bin/exiftool_files/lib/List/Util.pm +97 -8
- package/bin/exiftool_files/lib/MIME/Base64.pm +5 -5
- package/bin/exiftool_files/lib/MIME/Charset/_Compat.pm +106 -0
- package/bin/exiftool_files/lib/MIME/Charset.pm +1303 -0
- package/bin/exiftool_files/lib/Math/BigFloat.pm +444 -27
- package/bin/exiftool_files/lib/Math/BigInt/Calc.pm +296 -313
- package/bin/exiftool_files/lib/Math/BigInt/FastCalc.pm +1 -1
- package/bin/exiftool_files/lib/Math/BigInt/GMP.pm +2 -115
- package/bin/exiftool_files/lib/Math/BigInt/LTM.pm +2 -24
- package/bin/exiftool_files/lib/Math/BigInt/Lib.pm +61 -32
- package/bin/exiftool_files/lib/Math/BigInt.pm +292 -107
- package/bin/exiftool_files/lib/POSIX.pm +1 -1
- package/bin/exiftool_files/lib/PerlIO/scalar.pm +41 -0
- package/bin/exiftool_files/lib/PerlIO.pm +397 -0
- package/bin/exiftool_files/lib/Portable/CPAN.pm +94 -94
- package/bin/exiftool_files/lib/Portable/Config.pm +94 -94
- package/bin/exiftool_files/lib/Portable/FileSpec.pm +180 -180
- package/bin/exiftool_files/lib/Portable/HomeDir.pm +110 -110
- package/bin/exiftool_files/lib/Portable/LoadYaml.pm +430 -430
- package/bin/exiftool_files/lib/Portable/minicpan.pm +55 -55
- package/bin/exiftool_files/lib/Portable.pm +246 -320
- package/bin/exiftool_files/lib/Scalar/Util.pm +9 -4
- package/bin/exiftool_files/lib/Socket.pm +16 -12
- package/bin/exiftool_files/lib/Storable.pm +1444 -1441
- package/bin/exiftool_files/lib/TAP/Base.pm +133 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Base.pm +467 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Color.pm +116 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Console/ParallelSession.pm +201 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Console/Session.pm +205 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Console.pm +100 -0
- package/bin/exiftool_files/lib/TAP/Formatter/File/Session.pm +95 -0
- package/bin/exiftool_files/lib/TAP/Formatter/File.pm +56 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Session.pm +220 -0
- package/bin/exiftool_files/lib/TAP/Harness/Beyond.pod +426 -0
- package/bin/exiftool_files/lib/TAP/Harness/Env.pm +215 -0
- package/bin/exiftool_files/lib/TAP/Harness.pm +1054 -0
- package/bin/exiftool_files/lib/TAP/Object.pm +155 -0
- package/bin/exiftool_files/lib/TAP/Parser/Aggregator.pm +414 -0
- package/bin/exiftool_files/lib/TAP/Parser/Grammar.pm +584 -0
- package/bin/exiftool_files/lib/TAP/Parser/Iterator/Array.pm +100 -0
- package/bin/exiftool_files/lib/TAP/Parser/Iterator/Process.pm +378 -0
- package/bin/exiftool_files/lib/TAP/Parser/Iterator/Stream.pm +116 -0
- package/bin/exiftool_files/lib/TAP/Parser/Iterator.pm +162 -0
- package/bin/exiftool_files/lib/TAP/Parser/IteratorFactory.pm +339 -0
- package/bin/exiftool_files/lib/TAP/Parser/Multiplexer.pm +194 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Bailout.pm +62 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Comment.pm +60 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Plan.pm +119 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Pragma.pm +62 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Test.pm +271 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Unknown.pm +48 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Version.pm +62 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/YAML.pm +61 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result.pm +297 -0
- package/bin/exiftool_files/lib/TAP/Parser/ResultFactory.pm +183 -0
- package/bin/exiftool_files/lib/TAP/Parser/Scheduler/Job.pm +127 -0
- package/bin/exiftool_files/lib/TAP/Parser/Scheduler/Spinner.pm +61 -0
- package/bin/exiftool_files/lib/TAP/Parser/Scheduler.pm +448 -0
- package/bin/exiftool_files/lib/TAP/Parser/Source.pm +381 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Executable.pm +184 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/File.pm +136 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Handle.pm +124 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Perl.pm +370 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/RawTAP.pm +130 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler.pm +191 -0
- package/bin/exiftool_files/lib/TAP/Parser/YAMLish/Reader.pm +332 -0
- package/bin/exiftool_files/lib/TAP/Parser/YAMLish/Writer.pm +254 -0
- package/bin/exiftool_files/lib/TAP/Parser.pm +1931 -0
- package/bin/exiftool_files/lib/Test/Builder/Formatter.pm +107 -0
- package/bin/exiftool_files/lib/Test/Builder/IO/Scalar.pm +659 -0
- package/bin/exiftool_files/lib/Test/Builder/Module.pm +182 -0
- package/bin/exiftool_files/lib/Test/Builder/Tester/Color.pm +51 -0
- package/bin/exiftool_files/lib/Test/Builder/Tester.pm +675 -0
- package/bin/exiftool_files/lib/Test/Builder/TodoDiag.pm +68 -0
- package/bin/exiftool_files/lib/Test/Builder.pm +2653 -0
- package/bin/exiftool_files/lib/Test/Harness.pm +618 -0
- package/bin/exiftool_files/lib/Test/More.pm +1997 -0
- package/bin/exiftool_files/lib/Test/Simple.pm +220 -0
- package/bin/exiftool_files/lib/Test/Tester/Capture.pm +241 -0
- package/bin/exiftool_files/lib/Test/Tester/CaptureRunner.pm +79 -0
- package/bin/exiftool_files/lib/Test/Tester/Delegate.pm +45 -0
- package/bin/exiftool_files/lib/Test/Tester.pm +695 -0
- package/bin/exiftool_files/lib/Test/Tutorial.pod +618 -0
- package/bin/exiftool_files/lib/Test/use/ok.pm +64 -0
- package/bin/exiftool_files/lib/Text/ParseWords.pm +303 -0
- package/bin/exiftool_files/lib/Tie/StdHandle.pm +2 -2
- package/bin/exiftool_files/lib/Time/HiRes.pm +73 -68
- package/bin/exiftool_files/lib/Time/Local.pm +82 -35
- package/bin/exiftool_files/lib/Time/Piece.pm +19 -4
- package/bin/exiftool_files/lib/Time/Seconds.pm +1 -1
- package/bin/exiftool_files/lib/UNIVERSAL.pm +203 -0
- package/bin/exiftool_files/lib/Unicode/GCString.pm +60 -0
- package/bin/exiftool_files/lib/Unicode/LineBreak/Constants.pm +68 -0
- package/bin/exiftool_files/lib/Unicode/LineBreak.pm +248 -0
- package/bin/exiftool_files/lib/Win32/API/Struct.pm +1 -177
- package/bin/exiftool_files/lib/Win32/API/Type.pm +1 -100
- package/bin/exiftool_files/lib/Win32/API.pm +1 -830
- package/bin/exiftool_files/lib/Win32/FindFile.pm +2 -123
- package/bin/exiftool_files/lib/Win32.pm +213 -89
- package/bin/exiftool_files/lib/Win32API/File.pm +1 -1
- package/bin/exiftool_files/lib/auto/B/B.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Compress/Raw/Bzip2/Bzip2.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Compress/Raw/Lzma/Lzma.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Compress/Raw/Lzma/autosplit.ix +3 -0
- package/bin/exiftool_files/lib/auto/Compress/Raw/Zlib/Zlib.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/CryptX/CryptX.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Cwd/Cwd.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Data/Dumper/Dumper.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Digest/MD5/MD5.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Digest/SHA/SHA.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Encode/Encode.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Fcntl/Fcntl.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/File/Glob/Glob.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/IO/Compress/Brotli/Brotli.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/IO/IO.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/List/Util/Util.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/MIME/Base64/Base64.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Math/BigInt/FastCalc/FastCalc.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Math/BigInt/GMP/GMP.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/POSIX/POSIX.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/PerlIO/scalar/scalar.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Socket/Socket.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Storable/Storable.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Time/HiRes/HiRes.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Time/Piece/Piece.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Unicode/LineBreak/LineBreak.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Win32/API/API.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Win32/FindFile/FindFile.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Win32/Win32.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Win32API/File/File.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/mro/mro.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/re/re.xs.dll +0 -0
- package/bin/exiftool_files/lib/feature.pm +49 -17
- package/bin/exiftool_files/lib/mro.pm +4 -20
- package/bin/exiftool_files/lib/overload.pm +15 -15
- package/bin/exiftool_files/lib/parent.pm +10 -2
- package/bin/exiftool_files/lib/re.pm +91 -33
- package/bin/exiftool_files/lib/warnings.pm +17 -6
- package/bin/exiftool_files/libgcc_s_seh-1.dll +0 -0
- package/bin/exiftool_files/liblzma-5__.dll +0 -0
- package/bin/exiftool_files/libstdc++-6.dll +0 -0
- package/bin/exiftool_files/libwinpthread-1.dll +0 -0
- package/bin/exiftool_files/perl.exe +0 -0
- package/bin/exiftool_files/perl532.dll +0 -0
- package/package.json +7 -5
- package/bin/exiftool_files/libgcc_s_dw2-1.dll +0 -0
- package/bin/exiftool_files/perl530.dll +0 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
package TAP::Harness::Env;
|
|
2
|
+
|
|
3
|
+
use strict;
|
|
4
|
+
use warnings;
|
|
5
|
+
|
|
6
|
+
use constant IS_VMS => ( $^O eq 'VMS' );
|
|
7
|
+
use TAP::Object;
|
|
8
|
+
use Text::ParseWords qw/shellwords/;
|
|
9
|
+
|
|
10
|
+
our $VERSION = '3.42';
|
|
11
|
+
|
|
12
|
+
# Get the parts of @INC which are changed from the stock list AND
|
|
13
|
+
# preserve reordering of stock directories.
|
|
14
|
+
sub _filtered_inc_vms {
|
|
15
|
+
my @inc = grep { !ref } @INC; #28567
|
|
16
|
+
|
|
17
|
+
# VMS has a 255-byte limit on the length of %ENV entries, so
|
|
18
|
+
# toss the ones that involve perl_root, the install location
|
|
19
|
+
@inc = grep { !/perl_root/i } @inc;
|
|
20
|
+
|
|
21
|
+
my @default_inc = _default_inc();
|
|
22
|
+
|
|
23
|
+
my @new_inc;
|
|
24
|
+
my %seen;
|
|
25
|
+
for my $dir (@inc) {
|
|
26
|
+
next if $seen{$dir}++;
|
|
27
|
+
|
|
28
|
+
if ( $dir eq ( $default_inc[0] || '' ) ) {
|
|
29
|
+
shift @default_inc;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
push @new_inc, $dir;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
shift @default_inc while @default_inc and $seen{ $default_inc[0] };
|
|
36
|
+
}
|
|
37
|
+
return @new_inc;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
# Cache this to avoid repeatedly shelling out to Perl.
|
|
41
|
+
my @inc;
|
|
42
|
+
|
|
43
|
+
sub _default_inc {
|
|
44
|
+
return @inc if @inc;
|
|
45
|
+
|
|
46
|
+
local $ENV{PERL5LIB};
|
|
47
|
+
local $ENV{PERLLIB};
|
|
48
|
+
|
|
49
|
+
my $perl = $ENV{HARNESS_PERL} || $^X;
|
|
50
|
+
|
|
51
|
+
# Avoid using -l for the benefit of Perl 6
|
|
52
|
+
chomp( @inc = `"$perl" -e "print join qq[\\n], \@INC, q[]"` );
|
|
53
|
+
return @inc;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
sub create {
|
|
57
|
+
my $package = shift;
|
|
58
|
+
my %input = %{ shift || {} };
|
|
59
|
+
|
|
60
|
+
my @libs = @{ delete $input{libs} || [] };
|
|
61
|
+
my @raw_switches = @{ delete $input{switches} || [] };
|
|
62
|
+
my @opt
|
|
63
|
+
= ( @raw_switches, shellwords( $ENV{HARNESS_PERL_SWITCHES} || '' ) );
|
|
64
|
+
my @switches;
|
|
65
|
+
while ( my $opt = shift @opt ) {
|
|
66
|
+
if ( $opt =~ /^ -I (.*) $ /x ) {
|
|
67
|
+
push @libs, length($1) ? $1 : shift @opt;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
push @switches, $opt;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
# Do things the old way on VMS...
|
|
75
|
+
push @libs, _filtered_inc_vms() if IS_VMS;
|
|
76
|
+
|
|
77
|
+
# If $Verbose isn't numeric default to 1. This helps core.
|
|
78
|
+
my $verbose
|
|
79
|
+
= $ENV{HARNESS_VERBOSE}
|
|
80
|
+
? $ENV{HARNESS_VERBOSE} !~ /\d/
|
|
81
|
+
? 1
|
|
82
|
+
: $ENV{HARNESS_VERBOSE}
|
|
83
|
+
: 0;
|
|
84
|
+
|
|
85
|
+
my %args = (
|
|
86
|
+
lib => \@libs,
|
|
87
|
+
timer => $ENV{HARNESS_TIMER} || 0,
|
|
88
|
+
switches => \@switches,
|
|
89
|
+
color => $ENV{HARNESS_COLOR} || 0,
|
|
90
|
+
verbosity => $verbose,
|
|
91
|
+
ignore_exit => $ENV{HARNESS_IGNORE_EXIT} || 0,
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
my $class = delete $input{harness_class} || $ENV{HARNESS_SUBCLASS} || 'TAP::Harness';
|
|
95
|
+
if ( defined( my $env_opt = $ENV{HARNESS_OPTIONS} ) ) {
|
|
96
|
+
for my $opt ( split /:/, $env_opt ) {
|
|
97
|
+
if ( $opt =~ /^j(\d*)$/ ) {
|
|
98
|
+
$args{jobs} = $1 || 9;
|
|
99
|
+
}
|
|
100
|
+
elsif ( $opt eq 'c' ) {
|
|
101
|
+
$args{color} = 1;
|
|
102
|
+
}
|
|
103
|
+
elsif ( $opt =~ m/^f(.*)$/ ) {
|
|
104
|
+
my $fmt = $1;
|
|
105
|
+
$fmt =~ s/-/::/g;
|
|
106
|
+
$args{formatter_class} = $fmt;
|
|
107
|
+
}
|
|
108
|
+
elsif ( $opt =~ m/^a(.*)$/ ) {
|
|
109
|
+
my $archive = $1;
|
|
110
|
+
$class = 'TAP::Harness::Archive';
|
|
111
|
+
$args{archive} = $archive;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
die "Unknown HARNESS_OPTIONS item: $opt\n";
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return TAP::Object->_construct($class, { %args, %input });
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
1;
|
|
122
|
+
|
|
123
|
+
=head1 NAME
|
|
124
|
+
|
|
125
|
+
TAP::Harness::Env - Parsing harness related environmental variables where appropriate
|
|
126
|
+
|
|
127
|
+
=head1 VERSION
|
|
128
|
+
|
|
129
|
+
Version 3.42
|
|
130
|
+
|
|
131
|
+
=head1 SYNOPSIS
|
|
132
|
+
|
|
133
|
+
my $harness = TAP::Harness::Env->create(\%extra_args)
|
|
134
|
+
|
|
135
|
+
=head1 DESCRIPTION
|
|
136
|
+
|
|
137
|
+
This module implements the environmental variables that L<Test::Harness> uses with TAP::Harness, and instantiates the appropriate class with the appropriate arguments.
|
|
138
|
+
|
|
139
|
+
=head1 METHODS
|
|
140
|
+
|
|
141
|
+
=over 4
|
|
142
|
+
|
|
143
|
+
=item * create( \%args )
|
|
144
|
+
|
|
145
|
+
This function reads the environment and generates an appropriate argument hash from it. If given any arguments in C<%extra_args>, these will override the environmental defaults. In accepts C<harness_class> (which defaults to C<TAP::Harness>), and any argument the harness class accepts.
|
|
146
|
+
|
|
147
|
+
=back
|
|
148
|
+
|
|
149
|
+
=head1 ENVIRONMENTAL VARIABLES
|
|
150
|
+
|
|
151
|
+
=over 4
|
|
152
|
+
|
|
153
|
+
=item C<HARNESS_PERL_SWITCHES>
|
|
154
|
+
|
|
155
|
+
Setting this adds perl command line switches to each test file run.
|
|
156
|
+
|
|
157
|
+
For example, C<HARNESS_PERL_SWITCHES=-T> will turn on taint mode.
|
|
158
|
+
C<HARNESS_PERL_SWITCHES=-MDevel::Cover> will run C<Devel::Cover> for
|
|
159
|
+
each test.
|
|
160
|
+
|
|
161
|
+
=item C<HARNESS_VERBOSE>
|
|
162
|
+
|
|
163
|
+
If true, C<TAP::Harness> will output the verbose results of running
|
|
164
|
+
its tests.
|
|
165
|
+
|
|
166
|
+
=item C<HARNESS_SUBCLASS>
|
|
167
|
+
|
|
168
|
+
Specifies a TAP::Harness subclass to be used in place of TAP::Harness.
|
|
169
|
+
|
|
170
|
+
=item C<HARNESS_OPTIONS>
|
|
171
|
+
|
|
172
|
+
Provide additional options to the harness. Currently supported options are:
|
|
173
|
+
|
|
174
|
+
=over
|
|
175
|
+
|
|
176
|
+
=item C<< j<n> >>
|
|
177
|
+
|
|
178
|
+
Run <n> (default 9) parallel jobs.
|
|
179
|
+
|
|
180
|
+
=item C<< c >>
|
|
181
|
+
|
|
182
|
+
Try to color output. See L<TAP::Formatter::Base/"new">.
|
|
183
|
+
|
|
184
|
+
=item C<< a<file.tgz> >>
|
|
185
|
+
|
|
186
|
+
Will use L<TAP::Harness::Archive> as the harness class, and save the TAP to
|
|
187
|
+
C<file.tgz>
|
|
188
|
+
|
|
189
|
+
=item C<< fPackage-With-Dashes >>
|
|
190
|
+
|
|
191
|
+
Set the formatter_class of the harness being run. Since the C<HARNESS_OPTIONS>
|
|
192
|
+
is seperated by C<:>, we use C<-> instead.
|
|
193
|
+
|
|
194
|
+
=back
|
|
195
|
+
|
|
196
|
+
Multiple options may be separated by colons:
|
|
197
|
+
|
|
198
|
+
HARNESS_OPTIONS=j9:c make test
|
|
199
|
+
|
|
200
|
+
=item C<HARNESS_TIMER>
|
|
201
|
+
|
|
202
|
+
Setting this to true will make the harness display the number of
|
|
203
|
+
milliseconds each test took. You can also use F<prove>'s C<--timer>
|
|
204
|
+
switch.
|
|
205
|
+
|
|
206
|
+
=item C<HARNESS_COLOR>
|
|
207
|
+
|
|
208
|
+
Attempt to produce color output.
|
|
209
|
+
|
|
210
|
+
=item C<HARNESS_IGNORE_EXIT>
|
|
211
|
+
|
|
212
|
+
If set to a true value instruct C<TAP::Parser> to ignore exit and wait
|
|
213
|
+
status from test scripts.
|
|
214
|
+
|
|
215
|
+
=back
|