1
0

0.4.27-22-g54d86fd.python-magic-tests-add-test-files-for-elf-and-json-use-to-test-flags.patch 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. Subject: Python-magic tests: add test files for elf and json, use to test flags
  2. Origin: upstream, commit 0.4.27-22-g54d86fd <https://github.com/ahupp/python-magic/commit/0.4.27-22-g54d86fd>
  3. Author: Robert Scott <code@humanleg.org.uk>
  4. Date: Sat Oct 7 18:42:23 2023 +0100
  5. elf-NetBSD-x86_64-echo is from
  6. https://github.com/JonathanSalwan/binary-samples under an MIT license
  7. incidentally this exposes that the ELF builtin magic detector
  8. only works on files, falling back to the soft magic for buffers
  9. Note for Debian: test/testdata/elf-NetBSD-x86_64-echo.gz.b64 is
  10. upstream's test/testdata/elf-NetBSD-x86_64-echo¹, gzip'ed and
  11. base64-encoded so it fits in a patch. Unpacking is done in
  12. debian/rules and debian/tests/run-testsuite
  13. ¹ sha256sum 17ebd33e39aeda51701f48f925340b09596602bbe6bc02a7ec94183797095618
  14. --- a/test/python_magic_test.py
  15. +++ b/test/python_magic_test.py
  16. @@ -96,6 +96,10 @@
  17. self.assert_values(
  18. m,
  19. {
  20. + "elf-NetBSD-x86_64-echo": (
  21. + "application/x-pie-executable",
  22. + "application/x-sharedlib",
  23. + ),
  24. "magic._pyc_": (
  25. "application/octet-stream",
  26. "text/x-bytecode.python",
  27. @@ -107,7 +111,9 @@
  28. "text.txt": "text/plain",
  29. b"\xce\xbb".decode("utf-8"): "text/plain",
  30. b"\xce\xbb": "text/plain",
  31. + "test.json": "application/json",
  32. },
  33. + buf_equals_file=False,
  34. )
  35. finally:
  36. os.unlink(dest)
  37. @@ -119,6 +125,88 @@
  38. self.assert_values(
  39. m,
  40. {
  41. + "elf-NetBSD-x86_64-echo": (
  42. + "ELF 64-bit LSB shared object, x86-64, version 1 (SYSV)",
  43. + "ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /libexec/ld.elf_so, for NetBSD 8.0, not stripped",
  44. + ),
  45. + "magic._pyc_": "python 2.4 byte-compiled",
  46. + "test.pdf": (
  47. + "PDF document, version 1.2",
  48. + "PDF document, version 1.2, 2 pages",
  49. + "PDF document, version 1.2, 2 page(s)",
  50. + ),
  51. + "test.gz": (
  52. + 'gzip compressed data, was "test", from Unix, last '
  53. + "modified: Sun Jun 29 01:32:52 2008",
  54. + 'gzip compressed data, was "test", last modified'
  55. + ": Sun Jun 29 01:32:52 2008, from Unix",
  56. + 'gzip compressed data, was "test", last modified'
  57. + ": Sun Jun 29 01:32:52 2008, from Unix, original size 15",
  58. + 'gzip compressed data, was "test", '
  59. + "last modified: Sun Jun 29 01:32:52 2008, "
  60. + "from Unix, original size modulo 2^32 15",
  61. + 'gzip compressed data, was "test", last modified'
  62. + ": Sun Jun 29 01:32:52 2008, from Unix, truncated",
  63. + ),
  64. + "text.txt": "ASCII text",
  65. + "test.snappy.parquet": ("Apache Parquet", "Par archive data"),
  66. + "test.json": "JSON text data",
  67. + },
  68. + buf_equals_file=False,
  69. + )
  70. + finally:
  71. + del os.environ["TZ"]
  72. +
  73. + def test_descriptions_no_soft(self):
  74. + m = magic.Magic(check_soft=False)
  75. + self.assert_values(
  76. + m,
  77. + {
  78. + "elf-NetBSD-x86_64-echo": (
  79. + "data",
  80. + "ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /libexec/ld.elf_so, for NetBSD 8.0, not stripped",
  81. + ),
  82. + "magic._pyc_": "data",
  83. + "test.pdf": "ASCII text",
  84. + "test.gz": "data",
  85. + "text.txt": "ASCII text",
  86. + "test.snappy.parquet": "data",
  87. + "test.json": "JSON text data",
  88. + },
  89. + buf_equals_file=False,
  90. + )
  91. +
  92. + def test_descriptions_no_elf(self):
  93. + m = magic.Magic(check_elf=False)
  94. + self.assert_values(
  95. + m,
  96. + {
  97. + "elf-NetBSD-x86_64-echo": "ELF 64-bit LSB shared object, x86-64, version 1 (SYSV)",
  98. + },
  99. + buf_equals_file=True,
  100. + )
  101. +
  102. + def test_descriptions_no_json(self):
  103. + m = magic.Magic(check_elf=False)
  104. + self.assert_values(
  105. + m,
  106. + {
  107. + "test.json": "data",
  108. + },
  109. + buf_equals_file=True,
  110. + )
  111. +
  112. + def test_descriptions_no_json(self):
  113. + m = magic.Magic(check_json=False)
  114. + os.environ["TZ"] = "UTC" # To get last modified date of test.gz in UTC
  115. + try:
  116. + self.assert_values(
  117. + m,
  118. + {
  119. + "elf-NetBSD-x86_64-echo": (
  120. + "ELF 64-bit LSB shared object, x86-64, version 1 (SYSV)",
  121. + "ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /libexec/ld.elf_so, for NetBSD 8.0, not stripped",
  122. + ),
  123. "magic._pyc_": "python 2.4 byte-compiled",
  124. "test.pdf": (
  125. "PDF document, version 1.2",
  126. --- /dev/null
  127. +++ b/test/testdata/test.json
  128. @@ -0,0 +1,7 @@
  129. +[
  130. + {
  131. + "one": 2,
  132. + "three": null,
  133. + "four": [5, "six", false]
  134. + }
  135. +]
  136. --- /dev/null
  137. +++ b/test/testdata/elf-NetBSD-x86_64-echo.gz.b64
  138. @@ -0,0 +1,62 @@
  139. +H4sIAKxQHWoCA+Vae3gTVRa/Sdo0lJIGWksF0QEKFIU0aSl9YLHpi8Htiz4AP5EhTaZNIE1KZlpa
  140. +ULZaitZSrKCo67dS+XywPpFdBXSh5SnrKhREEBZYQGBTKkvlLSjZeyd30pkhQ/3Wz/1n5+vk3POb
  141. +c8499zH3nnumv8/OzVEqFIC/VGAyQFyHxsenY1w3zC8CsWSggb/Dwb1ADflggZyUdijEVOOvB4Ag
  142. +VFBiQEIjgJgqBDQYyF/kADEFgPDrIV9jtT40VkuI6Apc7zqlWE+J9QqxXiGW52k9dqxe0r4gfEdi
  143. +e1I6DohpEKaFZ1grKreG+XgpjQFiyusVYT259n2L/eMp359xDnsZXUtb4hxWPe0opxgXACHYLpLJ
  144. +p9mM4izUsA/j+DahsSs0z+T0B8I7Gtu6Cz9XYz4K3lrBsOrgHSYY08GYRsK7P/jlV7BgDiEf0VCH
  145. +wrsfxkPwOAyCdzjGBvZhMwzLS69BnN8DQI/EwWgZ+dH+mSO+JnM+DAY2HSGaJ1Nl5B+TsW/l7ESD
  146. +DomdA5yf/cCJELH8fBk7T8jgT8vgy2X6cCX2p1Piz6vwHhFA/h2Z9g6QqbdDBj/JtTcafKoTW9st
  147. +I3+Ekx98m/xeGfnz2P63EnkA3xeLnnHpjfGAomvtLKDK7U47oCiGZh0ui9lBJxogZ6XddIWdYWk3
  148. +Ve42V9KU3VnugniV21XhhDygHq6hirBIpsPMMDQDyssd1YwNSTEUw7rtzgoGQLO9OhRTx8AqHKAK
  149. +PmTLEZADaGeN3e1yQsZSa0bemB32hUg4sAfMgrLqcmBmfc6j5sAnqEhbzawZCpQxqHazG0FOK7dC
  150. +wHUjXDy+/Ponnc+7MV8lwXm+E9tRC9YudJ0Q4GoB7hHgAwR4jwAPF+DXBbhO+L7i+kMEax+3ygtw
  151. +lQCPFeDCV8ogwEMFeLIAFy4V6QI8TLhPCXDhe1UowIXzcqYAjxTgcwR4VKD9sOF7jcemRIUdmu0A
  152. +eBMHaQjgHRUJf8PvS4clxNuQaNcJL7xGhSIedVFXJ8crEY+W764Ojr8RAnnUVV3rOP4i4tFQdrVx
  153. +/DnEoyW6q5XjTyEeDUdXPccfQTxyt6uK4/cjHk2Trjkc/wXi0VLeVcjx90O+vNU7Kh7TVBElG073
  154. +oDaSTYfIpj1k05Eu1JTSYg5r3B++5BLqhKavyZbgfVCBbNKRLeMPoVJzho5syoZUSTbrONH1SLRl
  155. +wDRObiDZDMI/0ZENHYol+9mI+htx1T1kk8IPVZ8nG9JeVMPeZ6eRjVfDl6AV78nJCzcWfsOO2TSc
  156. +M3XXQdhvW1DftaMOMnZ4vrrl9bajzvU0wFLD4iAFq91E+IT3QcHufZ5z8IHnCvwhW9LyIeQ5jIAJ
  157. +8Kd5kYZsLoUeJ3huQpWmzz2vcWLBq6Eb0PHriDRpuiyw2zZF+IzeAy101SHgXh8wEgE2CNSnbeS8
  158. +V2wv3hX8PiwqYIOOBiMojGxOK4aIZzlnf9jgINRfKrKxg9V4O8mG7Zpu2Olpz2HhlrQ9yM9pUPjR
  159. +7fVpc3rNlmKzLZxkBNmSGMS5mvZHpJCMrDekzeQeDoLoBhV82PAQYIM9Yb6aG1W+mhuue31Vd2u6
  160. +Lzy63VRqKsFj3HSFbJ7soX9G4okm2LVGryeJ4x6DvVUNJ8FVNnKTimt82ir4/NJb4Uvegmy28TzZ
  161. +PP40bFpuy5svo+fNCUiYhHLzFdxoxSE7sLVkwyTAnmhufANKNXgUTVyhsaPWRDY3cpothQqy6UVU
  162. +3AUIn53qjdmN59kCsmUzgj1/+cnrvdq4Fq0IbIxvBpyE0KRGtME9sSG36Ww7mgaeoxDscsPhgc3o
  163. ++Ilrhs60mXsd8yHa8D6qWlE7OFDNod3Pky0fo3I7Wpo8rcjWIqglXQ8UXMdz60HvTkNU2hkGFnyr
  164. +Wn5pbi5RUDaXynay7jqiygX3G9pN2J3ElIISKJLpcrurq9g7iXBXVh3cuewWwmF3zoMPa2g3Y3c5
  165. +UV2VZtZi8y+h451gFIOaNlQ1KQavxXNuer1zIM2B7UDnidHQ7WcEMSMXxy4sgt2hUwwNC9G0wm66
  166. +B/juW1A3BnWbSatbqjRpoxtUWWjLQrYfRPvEDa93HTKg1eVoox8O779AUw8eGjLp/oSYEXx8jWKt
  167. +VXAKxCE7GVpdizJDG71MZdISS4NM2tiG4CytAfyfXF58yfEgwDkNCPbmi4I4m9vvQ3rjPm4/7y8+
  168. +z6QrxbG+ARf42KAHP+cn0DVM+wvic/5MIrz8e7yOEB07eyTzKkRyRvGoxXisWnze68C0n6R+OA1d
  169. +QCD6I+ZVv/F48fHZfyunxg2LwnQ0phMxzcF0OqblmNZguhTTVZrAceGvv6ZkZqYSsb7zKeEsiyfi
  170. +DcZkQ0J80lgiUZ+oN4AY37NUwuJmDfricTWEUZ+ApIxxhqQ4g5EwxKcmpqQaEom5LtpdQWTXVhEx
  171. +Yq3xFldlpcupt3DKxglIe2KcAf4lEcb4VENSaoK8th3XaURahjhDMqeVnGow3kmrDAbtTqwZ79OE
  172. +DicYkGZCEnQ4sCZtsbl4N1OwmylxsG2wNoMBekowdI3ZGaBCGOPfwdEJso46f3Hz0mNHjiUyXVV1
  173. +bnuFjSViLWMJY0pyyjj4m5JAlNhoAh6EaCfLEK5ygoVsqdPObRRsHUIy4Xmm3OV22s16gjA5HARn
  174. +hiHcNEO7a2irHs2GH/YqhWE997JF4nU8Gb7kw+HT2iMlK14v2J4euat9wYy2bvWy9SbzyLEflLlD
  175. +E5u3jYvd8dTJuI7h77QuCcrMyCC2vq6LiY1vzHy9KjpI2bjth2OfrarJm7342vEnLhxb8FJofeWX
  176. +i8vnmOd9c2/mNt3IEdWNHxHMx9PB2fjOJ0y7p1eSyu9tX7Xl/Xv6vMPMpacrv1/JLFMtPXM68xvb
  177. +hut3D1htjZpmj7GfWnvxKcuV9WsfnZhwIHvmjUP6797oWfjOrLGssdS4d1z1u6+tzHl+wbxLB+de
  178. +Orh59YERbTvXU0X7jr4y+d3jW29sbnW9naKPPnZy1AfPLqIGX9tSml81Zc/Iz9M21TMPtg5/q/Zy
  179. +at3okacvZnxieHHGigv247u1OWePPZLlnPz46h8PMDlXf3eTuZnnPLHrVuurtevbFy+v3nUzvTMy
  180. +bYyn1Xix7YJ+wvE//GxcMXtr5O+5xT57z1btNiJMfWLyF3smDf1nekSE5fEG9azDuzWJkQeuX75l
  181. +CYl7IerGxxOWf1f19clzf33j5OzLd415RV0y1v7a38Ytbnxg56w/0c3Mrm7L/DOrD695c//i+Fdd
  182. +T347KeLU+y/NHvK291/DjuWVr/08s92ueWbY0vlbZhXsKCizuk61HnVojIorJ1aGHzv79LkhG15m
  183. +h87ckRf9wPo1H+54dsXjHUmFA6Z3//3M4qUHHIdjnZteadv7dvWMj5ZNfXPLzvCk/s/YuLfCSpdV
  184. +V8AZ0nb5OfnVRMHdkbeth6F4F2sNE8sP4+Sj/PuIeI9R9G4sIlzpz/+JcRUYFxAP8u+DYjzYv/+J
  185. +cbV/nxTjIf79Soxr/PuaGL89j+TDQ0FPQLw/aNMEwsP8eWQxfns+zYdrxYdkP357//twHdgYEB/o
  186. +z3uK8UEgOSAeAciAeGTA/VEFowo+jyHG5eZDb95PjPfm8cT43QHnqAoMkcGHyuD3yODDbsMSuHxD
  187. +GPgEB1RxeDVNlsmPTZbJi2bJyBfJ5P3myuRFq2Xkm2TstyJ/lAOBQTJea2TypZMUgfOlYxS+fpDO
  188. +2w9l6v1MBt8pg8fK2P9SJr+6Tya/elgmv+qR6bcUGX9uyeBqReD86iCID1QOvi2/d59CJh+OcGUY
  189. +OIgFYxS98ytQPnaijB2TQiYfS2U9km/Km5oJKGpKfimVTVI5Raa8bIrMKgLUlNyCDFMuVZCTU5xd
  190. +QpWYMnKzKVBptjt/w9xtZklBEZU7tbiEys7Poqj/STZXlLSlrIyLspmdVgftT/NS/oyuL8krTPs6
  191. +4TlXz9RVsuYySFm3j9r4EneqrwJ6p4ul9U6aLWOsersVhmtiqMpcC/Q2M+wCvbXOCc35KOsGejft
  192. +MCMGl6ocLLIK60ZFfYULFqCb8JcbDb3bxfmop224qTaru5cDegvrcjPQuo/Mtbi5mlCWASBjPvs+
  193. +E7BXoDyM4Tl3LXwICvTFpfkzKAvsc32Fs5riIgSUofj1p5KhOJbwb88y3zWl52X+GonPmLya9Lth
  194. +tEQ+SMJPlOjzcQVPI/vQn4LP3ErJOZyn70m+wWkkdvLwGVwpOaf3SOyocds1kvNyKT4bKyXnfp5e
  195. +66P/HsO+KCXndJ52yPjP11+B9TMk536e9gj0owLozxd8axbmOXiqlfirk/AOiT4fb/F0nYw+TxdI
  196. +9Pm4jKfSvUEantVL9Pl9iqejVHf2f6nU//5i2lf7l2H9eCBJGIX1focM5D8/D16QvH9y38/l5v8a
  197. +iT4fX/K0tY/+ew/r893U+x0+cHul+n+W6PPxavIv1P9Uos/HtaQ2sLyUb8djpwLS/3cQ/5+DWqLP
  198. ++7VIUj8fJ3fiRKBBpn6N4PutIkCejq/A1of+Pok+H1fadL1x6J3afwhjvD4fN36qC7z+SvWP4vql
  199. +7eT1h/eRL40LsKah6x9Yv0lx5/XvjIy+FQdV5j7Wzx4Z/d1YP0p55/fnhoz+8cjA81cqO1AmN6rG
  200. +R5l+fbRftPcK24Xr7wzuXQeHB1i/+8nU34GPXjl91P8fRGXhJFAlAAA=