diff options
author | Elliott Hughes <enh@google.com> | 2019-04-26 09:33:08 -0700 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2019-04-26 15:15:49 -0500 |
commit | 81220b8090cc02158510fc6557b9cfd72e21f56a (patch) | |
tree | 99d523a54a5ebf29c0d9e59d4ce9de5ec9739cd6 | |
parent | 3e8fdc228df1ef233d0c578207fde76d3ad9559a (diff) | |
download | toybox-81220b8090cc02158510fc6557b9cfd72e21f56a.tar.gz |
file: improve test coverage.
Use a real .class file and add tests for the other formats that file(1)
recognizes and we already have sample input in tests/files/.
-rwxr-xr-x | tests/file.test | 27 | ||||
-rw-r--r-- | tests/files/java.class | bin | 0 -> 182 bytes |
2 files changed, 20 insertions, 7 deletions
diff --git a/tests/file.test b/tests/file.test index 802f32e1..fa8ea45b 100755 --- a/tests/file.test +++ b/tests/file.test @@ -9,16 +9,29 @@ echo "#!/bin/bash" > bash.script echo "#! /bin/bash" > bash.script2 echo "#! /usr/bin/env python" > env.python.script echo "Hello, world!" > ascii -echo "cafebabe000000310000" | xxd -r -p > java.class echo "6465780a3033350038ca8f6ce910f94e" | xxd -r -p > android.dex -ln -s java.class symlink +ln -s $FILES/java.class symlink +testing "directory" "file ." ".: directory\n" "" "" testing "empty" "file empty" "empty: empty\n" "" "" testing "bash.script" "file bash.script" "bash.script: /bin/bash script\n" "" "" testing "bash.script with spaces" "file bash.script2" "bash.script2: /bin/bash script\n" "" "" testing "env python script" "file env.python.script" "env.python.script: python script\n" "" "" testing "ascii" "file ascii" "ascii: ASCII text\n" "" "" -testing "java class" "file java.class" "java.class: Java class file, version 49.0 (Java 1.5)\n" "" "" +testing "utf-8" "file $FILES/utf8/japan.txt | sed 's|$FILES/||'" \ + "utf8/japan.txt: UTF-8 text\n" "" "" +testing "java class" "file $FILES/java.class | sed 's|$FILES/||'" \ + "java.class: Java class file, version 53.0 (Java 1.9)\n" "" "" +testing "tar file" "file $FILES/tar/tar.tar | sed 's|$FILES/||'" \ + "tar/tar.tar: POSIX tar archive (GNU)\n" "" "" +testing "gzip data" "file $FILES/tar/tar.tgz | sed 's|$FILES/||'" \ + "tar/tar.tgz: gzip compressed data\n" "" "" +testing "bzip2 data" "file $FILES/tar/tar.tbz2 | sed 's|$FILES/||'" \ + "tar/tar.tbz2: bzip2 compressed data, block size = 900k\n" "" "" +testing "zip file" "file $FILES/zip/example.zip | sed 's|$FILES/||'" \ + "zip/example.zip: Zip archive data, requires at least v1.0 to extract\n" "" "" + +# TODO: check in a genuine minimal .dex testing "Android .dex" "file android.dex" "android.dex: Android dex file, version 035\n" "" "" # These actually test a lot of the ELF code: 32-/64-bit, arm/arm64, PT_INTERP, @@ -32,12 +45,12 @@ toyonly testing "Android NDK short ELF note" \ testing "symlink" "file symlink" "symlink: symbolic link\n" "" "" testing "symlink -h" "file -h symlink" "symlink: symbolic link\n" "" "" -testing "symlink -L" "file -L symlink" "symlink: Java class file, version 49.0 (Java 1.5)\n" "" "" +testing "symlink -L" "file -L symlink" "symlink: Java class file, version 53.0 (Java 1.9)\n" "" "" -testing "- pipe" "cat java.class | file -" "-: Java class file, version 49.0 (Java 1.5)\n" "" "" -testing "- redirect" "file - <java.class" "-: Java class file, version 49.0 (Java 1.5)\n" "" "" +testing "- pipe" "cat $FILES/java.class | file -" "-: Java class file, version 53.0 (Java 1.9)\n" "" "" +testing "- redirect" "file - <$FILES/java.class" "-: Java class file, version 53.0 (Java 1.9)\n" "" "" testing "/dev/zero" "file /dev/zero" "/dev/zero: character special\n" "" "" testing "- </dev/zero" "file - </dev/zero" "-: data\n" "" "" -rm empty bash.script bash.script2 env.python.script ascii java.class android.dex +rm empty bash.script bash.script2 env.python.script ascii android.dex diff --git a/tests/files/java.class b/tests/files/java.class Binary files differnew file mode 100644 index 00000000..5ddfa5ef --- /dev/null +++ b/tests/files/java.class |