Skip to content

Commit 1b6f46a

Browse files
authored
[Release 2024.06] Fixes (#1116)
Restores tests on non-x86 (tested arm, arm64 and mips64) Mostly very minor fixes, only unit tests related. Qemu tests are temporarily disabled when remoting because they all assume host & target are Intel (not blocking, but must be reworked later).
1 parent ff185e6 commit 1b6f46a

File tree

6 files changed

+13
-7
lines changed

6 files changed

+13
-7
lines changed

tests/api/gef_memory.py

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from tests.base import RemoteGefUnitTestGeneric
1010

1111
from tests.utils import (
12+
ARCH,
1213
debug_target,
1314
gdbserver_session,
1415
qemuuser_session,
@@ -135,6 +136,7 @@ def test_func_parse_maps_remote_gdbserver(self):
135136
sections = gef.memory.maps
136137
assert len(sections) > 0
137138

139+
@pytest.mark.skipif(ARCH not in ("x86_64",), reason=f"Skipped for {ARCH}")
138140
def test_func_parse_maps_remote_qemu(self):
139141
gdb, gef = self._gdb, self._gef
140142
# When in a gef-remote qemu-user session `parse_gdb_info_proc_maps`

tests/api/gef_session.py

+3
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
import pathlib
77
import random
88
import re
9+
import pytest
910

1011
from tests.base import RemoteGefUnitTestGeneric
1112

1213
from tests.utils import (
14+
ARCH,
1315
debug_target,
1416
gdbserver_session,
1517
qemuuser_session,
@@ -72,6 +74,7 @@ def test_root_dir_remote(self):
7274
expected.st_ino == result.st_ino
7375
)
7476

77+
@pytest.mark.skipif(ARCH not in ("x86_64",), reason=f"Skipped for {ARCH}")
7578
def test_root_dir_qemu(self):
7679
gdb, gef = self._gdb, self._gef
7780

tests/commands/canary.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,21 @@ def setUp(self) -> None:
1313
self._target = debug_target("canary")
1414
return super().setUp()
1515

16-
1716
def test_cmd_canary(self):
1817
assert ERROR_INACTIVE_SESSION_MESSAGE == self._gdb.execute("canary", to_string=True)
1918
self._gdb.execute("start")
2019
res = self._gdb.execute("canary", to_string=True)
2120
assert "The canary of process" in res
2221
assert self._gef.session.canary[0] == self._gef.session.original_canary[0]
2322

24-
2523
def test_overwrite_canary(self):
2624
gdb, gef = self._gdb, self._gef
2725

2826
gdb.execute("start")
27+
_, canary_address = gef.session.canary
2928
if is_64b():
30-
gef.memory.write(gef.arch.canary_address(), p64(0xdeadbeef))
29+
gef.memory.write(canary_address, p64(0xDEADBEEF))
3130
else:
32-
gef.memory.write(gef.arch.canary_address(), p32(0xdeadbeef))
33-
res = u32(gef.memory.read(gef.arch.canary_address(), gef.arch.ptrsize))
31+
gef.memory.write(canary_address, p32(0xDEADBEEF))
32+
res = u32(gef.memory.read(canary_address, gef.arch.ptrsize))
3433
assert 0xdeadbeef == res

tests/commands/gef_remote.py

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from tests.base import RemoteGefUnitTestGeneric
1010
from tests.utils import (
11+
ARCH,
1112
debug_target,
1213
gdbserver_session,
1314
qemuuser_session,
@@ -39,6 +40,7 @@ def test_cmd_gef_remote_gdbserver(self):
3940
assert res.endswith(f"pid={gef.session.pid}, mode={gdbserver_mode})")
4041

4142
@pytest.mark.slow
43+
@pytest.mark.skipif(ARCH not in ("x86_64",), reason=f"Skipped for {ARCH}")
4244
def test_cmd_gef_remote_qemu_user(self):
4345
gdb = self._gdb
4446
gef = self._gef

tests/commands/scan.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class ScanCommand(RemoteGefUnitTestGeneric):
1111
"""`scan` command test module"""
1212

1313
def setUp(self) -> None:
14-
self._target = debug_target("checksec-no-pie")
14+
self._target = debug_target("default")
1515
return super().setUp()
1616

1717
def test_cmd_scan(self):

tests/commands/vmmap.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ def test_cmd_vmmap(self):
2222
res = gdb.execute("vmmap stack", to_string=True)
2323
self.assertGreater(len(res.splitlines()), 1)
2424

25-
res = gdb.execute("vmmap $rip", to_string=True)
25+
res = gdb.execute("vmmap $pc", to_string=True)
2626
self.assertEqual(len(res.splitlines()), 2)

0 commit comments

Comments
 (0)