| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- Subject: Python-magic tests: add test files for elf and json, use to test flags
- Origin: upstream, commit 0.4.27-22-g54d86fd <https://github.com/ahupp/python-magic/commit/0.4.27-22-g54d86fd>
- Author: Robert Scott <code@humanleg.org.uk>
- Date: Sat Oct 7 18:42:23 2023 +0100
- elf-NetBSD-x86_64-echo is from
- https://github.com/JonathanSalwan/binary-samples under an MIT license
- incidentally this exposes that the ELF builtin magic detector
- only works on files, falling back to the soft magic for buffers
- Note for Debian: test/testdata/elf-NetBSD-x86_64-echo.gz.b64 is
- upstream's test/testdata/elf-NetBSD-x86_64-echo¹, gzip'ed and
- base64-encoded so it fits in a patch. Unpacking is done in
- debian/rules and debian/tests/run-testsuite
- ¹ sha256sum 17ebd33e39aeda51701f48f925340b09596602bbe6bc02a7ec94183797095618
- --- a/test/python_magic_test.py
- +++ b/test/python_magic_test.py
- @@ -96,6 +96,10 @@
- self.assert_values(
- m,
- {
- + "elf-NetBSD-x86_64-echo": (
- + "application/x-pie-executable",
- + "application/x-sharedlib",
- + ),
- "magic._pyc_": (
- "application/octet-stream",
- "text/x-bytecode.python",
- @@ -107,7 +111,9 @@
- "text.txt": "text/plain",
- b"\xce\xbb".decode("utf-8"): "text/plain",
- b"\xce\xbb": "text/plain",
- + "test.json": "application/json",
- },
- + buf_equals_file=False,
- )
- finally:
- os.unlink(dest)
- @@ -119,6 +125,88 @@
- self.assert_values(
- m,
- {
- + "elf-NetBSD-x86_64-echo": (
- + "ELF 64-bit LSB shared object, x86-64, version 1 (SYSV)",
- + "ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /libexec/ld.elf_so, for NetBSD 8.0, not stripped",
- + ),
- + "magic._pyc_": "python 2.4 byte-compiled",
- + "test.pdf": (
- + "PDF document, version 1.2",
- + "PDF document, version 1.2, 2 pages",
- + "PDF document, version 1.2, 2 page(s)",
- + ),
- + "test.gz": (
- + 'gzip compressed data, was "test", from Unix, last '
- + "modified: Sun Jun 29 01:32:52 2008",
- + 'gzip compressed data, was "test", last modified'
- + ": Sun Jun 29 01:32:52 2008, from Unix",
- + 'gzip compressed data, was "test", last modified'
- + ": Sun Jun 29 01:32:52 2008, from Unix, original size 15",
- + 'gzip compressed data, was "test", '
- + "last modified: Sun Jun 29 01:32:52 2008, "
- + "from Unix, original size modulo 2^32 15",
- + 'gzip compressed data, was "test", last modified'
- + ": Sun Jun 29 01:32:52 2008, from Unix, truncated",
- + ),
- + "text.txt": "ASCII text",
- + "test.snappy.parquet": ("Apache Parquet", "Par archive data"),
- + "test.json": "JSON text data",
- + },
- + buf_equals_file=False,
- + )
- + finally:
- + del os.environ["TZ"]
- +
- + def test_descriptions_no_soft(self):
- + m = magic.Magic(check_soft=False)
- + self.assert_values(
- + m,
- + {
- + "elf-NetBSD-x86_64-echo": (
- + "data",
- + "ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /libexec/ld.elf_so, for NetBSD 8.0, not stripped",
- + ),
- + "magic._pyc_": "data",
- + "test.pdf": "ASCII text",
- + "test.gz": "data",
- + "text.txt": "ASCII text",
- + "test.snappy.parquet": "data",
- + "test.json": "JSON text data",
- + },
- + buf_equals_file=False,
- + )
- +
- + def test_descriptions_no_elf(self):
- + m = magic.Magic(check_elf=False)
- + self.assert_values(
- + m,
- + {
- + "elf-NetBSD-x86_64-echo": "ELF 64-bit LSB shared object, x86-64, version 1 (SYSV)",
- + },
- + buf_equals_file=True,
- + )
- +
- + def test_descriptions_no_json(self):
- + m = magic.Magic(check_elf=False)
- + self.assert_values(
- + m,
- + {
- + "test.json": "data",
- + },
- + buf_equals_file=True,
- + )
- +
- + def test_descriptions_no_json(self):
- + m = magic.Magic(check_json=False)
- + os.environ["TZ"] = "UTC" # To get last modified date of test.gz in UTC
- + try:
- + self.assert_values(
- + m,
- + {
- + "elf-NetBSD-x86_64-echo": (
- + "ELF 64-bit LSB shared object, x86-64, version 1 (SYSV)",
- + "ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /libexec/ld.elf_so, for NetBSD 8.0, not stripped",
- + ),
- "magic._pyc_": "python 2.4 byte-compiled",
- "test.pdf": (
- "PDF document, version 1.2",
- --- /dev/null
- +++ b/test/testdata/test.json
- @@ -0,0 +1,7 @@
- +[
- + {
- + "one": 2,
- + "three": null,
- + "four": [5, "six", false]
- + }
- +]
- --- /dev/null
- +++ b/test/testdata/elf-NetBSD-x86_64-echo.gz.b64
- @@ -0,0 +1,62 @@
- +H4sIAKxQHWoCA+Vae3gTVRa/Sdo0lJIGWksF0QEKFIU0aSl9YLHpi8Htiz4AP5EhTaZNIE1KZlpa
- +ULZaitZSrKCo67dS+XywPpFdBXSh5SnrKhREEBZYQGBTKkvlLSjZeyd30pkhQ/3Wz/1n5+vk3POb
- +c8499zH3nnumv8/OzVEqFIC/VGAyQFyHxsenY1w3zC8CsWSggb/Dwb1ADflggZyUdijEVOOvB4Ag
- +VFBiQEIjgJgqBDQYyF/kADEFgPDrIV9jtT40VkuI6Apc7zqlWE+J9QqxXiGW52k9dqxe0r4gfEdi
- +e1I6DohpEKaFZ1grKreG+XgpjQFiyusVYT259n2L/eMp359xDnsZXUtb4hxWPe0opxgXACHYLpLJ
- +p9mM4izUsA/j+DahsSs0z+T0B8I7Gtu6Cz9XYz4K3lrBsOrgHSYY08GYRsK7P/jlV7BgDiEf0VCH
- +wrsfxkPwOAyCdzjGBvZhMwzLS69BnN8DQI/EwWgZ+dH+mSO+JnM+DAY2HSGaJ1Nl5B+TsW/l7ESD
- +DomdA5yf/cCJELH8fBk7T8jgT8vgy2X6cCX2p1Piz6vwHhFA/h2Z9g6QqbdDBj/JtTcafKoTW9st
- +I3+Ekx98m/xeGfnz2P63EnkA3xeLnnHpjfGAomvtLKDK7U47oCiGZh0ui9lBJxogZ6XddIWdYWk3
- +Ve42V9KU3VnugniV21XhhDygHq6hirBIpsPMMDQDyssd1YwNSTEUw7rtzgoGQLO9OhRTx8AqHKAK
- +PmTLEZADaGeN3e1yQsZSa0bemB32hUg4sAfMgrLqcmBmfc6j5sAnqEhbzawZCpQxqHazG0FOK7dC
- +wHUjXDy+/Ponnc+7MV8lwXm+E9tRC9YudJ0Q4GoB7hHgAwR4jwAPF+DXBbhO+L7i+kMEax+3ygtw
- +lQCPFeDCV8ogwEMFeLIAFy4V6QI8TLhPCXDhe1UowIXzcqYAjxTgcwR4VKD9sOF7jcemRIUdmu0A
- +eBMHaQjgHRUJf8PvS4clxNuQaNcJL7xGhSIedVFXJ8crEY+W764Ojr8RAnnUVV3rOP4i4tFQdrVx
- +/DnEoyW6q5XjTyEeDUdXPccfQTxyt6uK4/cjHk2Trjkc/wXi0VLeVcjx90O+vNU7Kh7TVBElG073
- +oDaSTYfIpj1k05Eu1JTSYg5r3B++5BLqhKavyZbgfVCBbNKRLeMPoVJzho5syoZUSTbrONH1SLRl
- +wDRObiDZDMI/0ZENHYol+9mI+htx1T1kk8IPVZ8nG9JeVMPeZ6eRjVfDl6AV78nJCzcWfsOO2TSc
- +M3XXQdhvW1DftaMOMnZ4vrrl9bajzvU0wFLD4iAFq91E+IT3QcHufZ5z8IHnCvwhW9LyIeQ5jIAJ
- +8Kd5kYZsLoUeJ3huQpWmzz2vcWLBq6Eb0PHriDRpuiyw2zZF+IzeAy101SHgXh8wEgE2CNSnbeS8
- +V2wv3hX8PiwqYIOOBiMojGxOK4aIZzlnf9jgINRfKrKxg9V4O8mG7Zpu2Olpz2HhlrQ9yM9pUPjR
- +7fVpc3rNlmKzLZxkBNmSGMS5mvZHpJCMrDekzeQeDoLoBhV82PAQYIM9Yb6aG1W+mhuue31Vd2u6
- +Lzy63VRqKsFj3HSFbJ7soX9G4okm2LVGryeJ4x6DvVUNJ8FVNnKTimt82ir4/NJb4Uvegmy28TzZ
- +PP40bFpuy5svo+fNCUiYhHLzFdxoxSE7sLVkwyTAnmhufANKNXgUTVyhsaPWRDY3cpothQqy6UVU
- +3AUIn53qjdmN59kCsmUzgj1/+cnrvdq4Fq0IbIxvBpyE0KRGtME9sSG36Ww7mgaeoxDscsPhgc3o
- ++Ilrhs60mXsd8yHa8D6qWlE7OFDNod3Pky0fo3I7Wpo8rcjWIqglXQ8UXMdz60HvTkNU2hkGFnyr
- +Wn5pbi5RUDaXynay7jqiygX3G9pN2J3ElIISKJLpcrurq9g7iXBXVh3cuewWwmF3zoMPa2g3Y3c5
- +UV2VZtZi8y+h451gFIOaNlQ1KQavxXNuer1zIM2B7UDnidHQ7WcEMSMXxy4sgt2hUwwNC9G0wm66
- +B/juW1A3BnWbSatbqjRpoxtUWWjLQrYfRPvEDa93HTKg1eVoox8O779AUw8eGjLp/oSYEXx8jWKt
- +VXAKxCE7GVpdizJDG71MZdISS4NM2tiG4CytAfyfXF58yfEgwDkNCPbmi4I4m9vvQ3rjPm4/7y8+
- +z6QrxbG+ARf42KAHP+cn0DVM+wvic/5MIrz8e7yOEB07eyTzKkRyRvGoxXisWnze68C0n6R+OA1d
- +QCD6I+ZVv/F48fHZfyunxg2LwnQ0phMxzcF0OqblmNZguhTTVZrAceGvv6ZkZqYSsb7zKeEsiyfi
- +DcZkQ0J80lgiUZ+oN4AY37NUwuJmDfricTWEUZ+ApIxxhqQ4g5EwxKcmpqQaEom5LtpdQWTXVhEx
- +Yq3xFldlpcupt3DKxglIe2KcAf4lEcb4VENSaoK8th3XaURahjhDMqeVnGow3kmrDAbtTqwZ79OE
- +DicYkGZCEnQ4sCZtsbl4N1OwmylxsG2wNoMBekowdI3ZGaBCGOPfwdEJso46f3Hz0mNHjiUyXVV1
- +bnuFjSViLWMJY0pyyjj4m5JAlNhoAh6EaCfLEK5ygoVsqdPObRRsHUIy4Xmm3OV22s16gjA5HARn
- +hiHcNEO7a2irHs2GH/YqhWE997JF4nU8Gb7kw+HT2iMlK14v2J4euat9wYy2bvWy9SbzyLEflLlD
- +E5u3jYvd8dTJuI7h77QuCcrMyCC2vq6LiY1vzHy9KjpI2bjth2OfrarJm7342vEnLhxb8FJofeWX
- +i8vnmOd9c2/mNt3IEdWNHxHMx9PB2fjOJ0y7p1eSyu9tX7Xl/Xv6vMPMpacrv1/JLFMtPXM68xvb
- +hut3D1htjZpmj7GfWnvxKcuV9WsfnZhwIHvmjUP6797oWfjOrLGssdS4d1z1u6+tzHl+wbxLB+de
- +Orh59YERbTvXU0X7jr4y+d3jW29sbnW9naKPPnZy1AfPLqIGX9tSml81Zc/Iz9M21TMPtg5/q/Zy
- +at3okacvZnxieHHGigv247u1OWePPZLlnPz46h8PMDlXf3eTuZnnPLHrVuurtevbFy+v3nUzvTMy
- +bYyn1Xix7YJ+wvE//GxcMXtr5O+5xT57z1btNiJMfWLyF3smDf1nekSE5fEG9azDuzWJkQeuX75l
- +CYl7IerGxxOWf1f19clzf33j5OzLd415RV0y1v7a38Ytbnxg56w/0c3Mrm7L/DOrD695c//i+Fdd
- +T347KeLU+y/NHvK291/DjuWVr/08s92ueWbY0vlbZhXsKCizuk61HnVojIorJ1aGHzv79LkhG15m
- +h87ckRf9wPo1H+54dsXjHUmFA6Z3//3M4qUHHIdjnZteadv7dvWMj5ZNfXPLzvCk/s/YuLfCSpdV
- +V8AZ0nb5OfnVRMHdkbeth6F4F2sNE8sP4+Sj/PuIeI9R9G4sIlzpz/+JcRUYFxAP8u+DYjzYv/+J
- +cbV/nxTjIf79Soxr/PuaGL89j+TDQ0FPQLw/aNMEwsP8eWQxfns+zYdrxYdkP357//twHdgYEB/o
- +z3uK8UEgOSAeAciAeGTA/VEFowo+jyHG5eZDb95PjPfm8cT43QHnqAoMkcGHyuD3yODDbsMSuHxD
- +GPgEB1RxeDVNlsmPTZbJi2bJyBfJ5P3myuRFq2Xkm2TstyJ/lAOBQTJea2TypZMUgfOlYxS+fpDO
- +2w9l6v1MBt8pg8fK2P9SJr+6Tya/elgmv+qR6bcUGX9uyeBqReD86iCID1QOvi2/d59CJh+OcGUY
- +OIgFYxS98ytQPnaijB2TQiYfS2U9km/Km5oJKGpKfimVTVI5Raa8bIrMKgLUlNyCDFMuVZCTU5xd
- +QpWYMnKzKVBptjt/w9xtZklBEZU7tbiEys7Poqj/STZXlLSlrIyLspmdVgftT/NS/oyuL8krTPs6
- +4TlXz9RVsuYySFm3j9r4EneqrwJ6p4ul9U6aLWOsersVhmtiqMpcC/Q2M+wCvbXOCc35KOsGejft
- +MCMGl6ocLLIK60ZFfYULFqCb8JcbDb3bxfmop224qTaru5cDegvrcjPQuo/Mtbi5mlCWASBjPvs+
- +E7BXoDyM4Tl3LXwICvTFpfkzKAvsc32Fs5riIgSUofj1p5KhOJbwb88y3zWl52X+GonPmLya9Lth
- +tEQ+SMJPlOjzcQVPI/vQn4LP3ErJOZyn70m+wWkkdvLwGVwpOaf3SOyocds1kvNyKT4bKyXnfp5e
- +66P/HsO+KCXndJ52yPjP11+B9TMk536e9gj0owLozxd8axbmOXiqlfirk/AOiT4fb/F0nYw+TxdI
- +9Pm4jKfSvUEantVL9Pl9iqejVHf2f6nU//5i2lf7l2H9eCBJGIX1focM5D8/D16QvH9y38/l5v8a
- +iT4fX/K0tY/+ew/r893U+x0+cHul+n+W6PPxavIv1P9Uos/HtaQ2sLyUb8djpwLS/3cQ/5+DWqLP
- ++7VIUj8fJ3fiRKBBpn6N4PutIkCejq/A1of+Pok+H1fadL1x6J3afwhjvD4fN36qC7z+SvWP4vql
- +7eT1h/eRL40LsKah6x9Yv0lx5/XvjIy+FQdV5j7Wzx4Z/d1YP0p55/fnhoz+8cjA81cqO1AmN6rG
- +R5l+fbRftPcK24Xr7wzuXQeHB1i/+8nU34GPXjl91P8fRGXhJFAlAAA=
|