diff --git a/src/core/operations/SwapEndianness.mjs b/src/core/operations/SwapEndianness.mjs index 872d35297c..ac9ba5ac34 100644 --- a/src/core/operations/SwapEndianness.mjs +++ b/src/core/operations/SwapEndianness.mjs @@ -71,7 +71,7 @@ class SwapEndianness extends Operation { data = Utils.strToByteArray(input); break; default: - data = input; + throw new OperationError("Data format must be Hex or Raw"); } // Split up into words diff --git a/tests/operations/index.mjs b/tests/operations/index.mjs index 44792560e7..0e4d9b06ed 100644 --- a/tests/operations/index.mjs +++ b/tests/operations/index.mjs @@ -174,6 +174,7 @@ import "./tests/StripTCPHeader.mjs"; import "./tests/StripUDPHeader.mjs"; import "./tests/Subsection.mjs"; import "./tests/SwapCase.mjs"; +import "./tests/SwapEndianness.mjs"; import "./tests/SymmetricDifference.mjs"; import "./tests/TakeNthBytes.mjs"; import "./tests/Template.mjs"; diff --git a/tests/operations/tests/SwapEndianness.mjs b/tests/operations/tests/SwapEndianness.mjs new file mode 100644 index 0000000000..55199b25e9 --- /dev/null +++ b/tests/operations/tests/SwapEndianness.mjs @@ -0,0 +1,33 @@ +/** + * Swap endianness tests. + * + * @author marko1olo + * @copyright Crown Copyright 2026 + * @license Apache-2.0 + */ +import TestRegister from "../../lib/TestRegister.mjs"; + +TestRegister.addTests([ + { + name: "Swap endianness: Hex data", + input: "0123456789abcdef", + expectedOutput: "67 45 23 01 ef cd ab 89", + recipeConfig: [ + { + op: "Swap endianness", + args: ["Hex", 4, true], + }, + ], + }, + { + name: "Swap endianness: empty data format", + input: "hello", + expectedOutput: "Data format must be Hex or Raw", + recipeConfig: [ + { + op: "Swap endianness", + args: ["", 2, true], + }, + ], + }, +]);