index.mjs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. /* eslint no-console: 0 */
  2. /**
  3. * Test Runner
  4. *
  5. * For running the tests in the test register.
  6. *
  7. * @author tlwr [toby@toby.codes]
  8. * @author n1474335 [n1474335@gmail.com]
  9. * @copyright Crown Copyright 2017
  10. * @license Apache-2.0
  11. */
  12. import {
  13. setLongTestFailure,
  14. logTestReport,
  15. } from "../lib/utils.mjs";
  16. import TestRegister from "../lib/TestRegister.mjs";
  17. import "./tests/BCD.mjs";
  18. import "./tests/BSON.mjs";
  19. import "./tests/BaconCipher.mjs";
  20. import "./tests/Base45.mjs";
  21. import "./tests/Base58.mjs";
  22. import "./tests/Base64.mjs";
  23. import "./tests/Base62.mjs";
  24. import "./tests/Base85.mjs";
  25. import "./tests/BitwiseOp.mjs";
  26. import "./tests/ByteRepr.mjs";
  27. import "./tests/CartesianProduct.mjs";
  28. import "./tests/CetaceanCipherEncode.mjs";
  29. import "./tests/CetaceanCipherDecode.mjs";
  30. import "./tests/ChaCha.mjs";
  31. import "./tests/CharEnc.mjs";
  32. import "./tests/ChangeIPFormat.mjs";
  33. import "./tests/Charts.mjs";
  34. import "./tests/Checksum.mjs";
  35. import "./tests/Ciphers.mjs";
  36. import "./tests/Code.mjs";
  37. import "./tests/Comment.mjs";
  38. import "./tests/Compress.mjs";
  39. import "./tests/ConditionalJump.mjs";
  40. import "./tests/Crypt.mjs";
  41. import "./tests/CSV.mjs";
  42. import "./tests/DateTime.mjs";
  43. import "./tests/ExtractEmailAddresses.mjs";
  44. import "./tests/Fork.mjs";
  45. import "./tests/FromDecimal.mjs";
  46. import "./tests/GenerateAllHashes.mjs";
  47. import "./tests/Gzip.mjs";
  48. import "./tests/Gunzip.mjs";
  49. import "./tests/Hash.mjs";
  50. import "./tests/HaversineDistance.mjs";
  51. import "./tests/Hex.mjs";
  52. import "./tests/Hexdump.mjs";
  53. import "./tests/Image.mjs";
  54. import "./tests/IndexOfCoincidence.mjs";
  55. import "./tests/Jump.mjs";
  56. import "./tests/JSONBeautify.mjs";
  57. import "./tests/JSONMinify.mjs";
  58. import "./tests/JSONtoCSV.mjs";
  59. import "./tests/JWTDecode.mjs";
  60. import "./tests/JWTSign.mjs";
  61. import "./tests/JWTVerify.mjs";
  62. import "./tests/LZNT1Decompress.mjs";
  63. import "./tests/MS.mjs";
  64. import "./tests/Magic.mjs";
  65. import "./tests/MorseCode.mjs";
  66. import "./tests/NetBIOS.mjs";
  67. import "./tests/NormaliseUnicode.mjs";
  68. import "./tests/OTP.mjs";
  69. import "./tests/PGP.mjs";
  70. import "./tests/PHP.mjs";
  71. import "./tests/ParseIPRange.mjs";
  72. import "./tests/ParseQRCode.mjs";
  73. import "./tests/PEMtoHex.mjs";
  74. import "./tests/PowerSet.mjs";
  75. import "./tests/Regex.mjs";
  76. import "./tests/Register.mjs";
  77. import "./tests/Rotate.mjs";
  78. import "./tests/SeqUtils.mjs";
  79. import "./tests/SetDifference.mjs";
  80. import "./tests/SetIntersection.mjs";
  81. import "./tests/SetUnion.mjs";
  82. import "./tests/SM4.mjs";
  83. import "./tests/StrUtils.mjs";
  84. import "./tests/SymmetricDifference.mjs";
  85. import "./tests/TextEncodingBruteForce.mjs";
  86. import "./tests/TranslateDateTimeFormat.mjs";
  87. import "./tests/Magic.mjs";
  88. import "./tests/ParseTLV.mjs";
  89. import "./tests/Media.mjs";
  90. import "./tests/ToFromInsensitiveRegex.mjs";
  91. import "./tests/YARA.mjs";
  92. import "./tests/ConvertCoordinateFormat.mjs";
  93. import "./tests/Enigma.mjs";
  94. import "./tests/Bombe.mjs";
  95. import "./tests/MultipleBombe.mjs";
  96. import "./tests/Typex.mjs";
  97. import "./tests/BLAKE2b.mjs";
  98. import "./tests/BLAKE2s.mjs";
  99. import "./tests/Protobuf.mjs";
  100. import "./tests/ParseSSHHostKey.mjs";
  101. import "./tests/DefangIP.mjs";
  102. import "./tests/ParseUDP.mjs";
  103. import "./tests/ParseTCP.mjs";
  104. import "./tests/AvroToJSON.mjs";
  105. import "./tests/Lorenz.mjs";
  106. import "./tests/LuhnChecksum.mjs";
  107. import "./tests/CipherSaber2.mjs";
  108. import "./tests/Colossus.mjs";
  109. import "./tests/ParseObjectIDTimestamp.mjs";
  110. import "./tests/Unicode.mjs";
  111. import "./tests/RSA.mjs";
  112. import "./tests/CBOREncode.mjs";
  113. import "./tests/CBORDecode.mjs";
  114. import "./tests/JA3Fingerprint.mjs";
  115. import "./tests/JA3SFingerprint.mjs";
  116. import "./tests/HASSH.mjs";
  117. import "./tests/GetAllCasings.mjs";
  118. import "./tests/SIGABA.mjs";
  119. import "./tests/ELFInfo.mjs";
  120. import "./tests/Subsection.mjs";
  121. import "./tests/CaesarBoxCipher.mjs";
  122. import "./tests/UnescapeString.mjs";
  123. import "./tests/LS47.mjs";
  124. import "./tests/LZString.mjs";
  125. import "./tests/NTLM.mjs";
  126. import "./tests/Shuffle.mjs";
  127. import "./tests/FletcherChecksum.mjs";
  128. import "./tests/CMAC.mjs";
  129. import "./tests/AESKeyWrap.mjs";
  130. import "./tests/Rabbit.mjs";
  131. import "./tests/LevenshteinDistance.mjs";
  132. import "./tests/SwapCase.mjs";
  133. import "./tests/HKDF.mjs";
  134. import "./tests/GenerateDeBruijnSequence.mjs";
  135. import "./tests/GOST.mjs";
  136. // Cannot test operations that use the File type yet
  137. // import "./tests/SplitColourChannels.mjs";
  138. const testStatus = {
  139. allTestsPassing: true,
  140. counts: {
  141. total: 0,
  142. }
  143. };
  144. setLongTestFailure();
  145. const logOpsTestReport = logTestReport.bind(null, testStatus);
  146. (async function() {
  147. const results = await TestRegister.runTests();
  148. logOpsTestReport(results);
  149. })();