1
0

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

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