From 6e38117a058cdf6fd9fbdc548f909a4f08a269b7 Mon Sep 17 00:00:00 2001
From: Martin Teichmann <martin.teichmann@xfel.eu>
Date: Mon, 28 Dec 2020 20:48:37 +0000
Subject: [PATCH] fix use of Enum

how did this ever work?
---
 ebpf.py      | 2 +-
 ebpf_test.py | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/ebpf.py b/ebpf.py
index 4307feb..07eee42 100644
--- a/ebpf.py
+++ b/ebpf.py
@@ -580,7 +580,7 @@ class EBPF:
 
     def assemble(self):
         return b"".join(
-            pack("<BBHI", i.opcode, i.dst | i.src << 4,
+            pack("<BBHI", i.opcode.value, i.dst | i.src << 4,
                  i.off % 0x10000, i.imm % 0x100000000)
             for i in self.opcodes)
 
diff --git a/ebpf_test.py b/ebpf_test.py
index 58c51d1..e876e97 100644
--- a/ebpf_test.py
+++ b/ebpf_test.py
@@ -10,7 +10,7 @@ opcodes.sort(reverse=True)
 
 
 def Instruction(opcode, dst, src, off, imm):
-    if isinstance(opcode, OpcodeFlags):
+    if isinstance(opcode, (Opcode, OpcodeFlags)):
         return ebpf.Instruction(opcode, dst, src, off, imm)
     bigger = [(k, v) for k, v in opcodes if opcode >= k]
     for bk, bv in bigger:
@@ -29,7 +29,7 @@ def Instruction(opcode, dst, src, off, imm):
 class Tests(TestCase):
     def test_assemble(self):
         e = EBPF()
-        e.append(0x24, 3, 4, 0x2c3d, 0x2d3e4f5e)
+        e.append(Opcode.MUL, 3, 4, 0x2c3d, 0x2d3e4f5e)
         self.assertEqual(e.assemble(), b"$C=,^O>-")
 
     def test_assign(self):
-- 
GitLab