1"""
2Verify the default cache line size for android targets
3"""
4
5
6
7import lldb
8from lldbsuite.test.decorators import *
9from lldbsuite.test.lldbtest import *
10from lldbsuite.test import lldbutil
11
12
13class DefaultCacheLineSizeTestCase(TestBase):
14    NO_DEBUG_INFO_TESTCASE = True
15
16    @skipUnlessTargetAndroid
17    def test_cache_line_size(self):
18        self.build()
19        target = self.createTestTarget()
20        self.assertTrue(target and target.IsValid(), "Target is valid")
21
22        breakpoint = target.BreakpointCreateByName("main")
23        self.assertTrue(
24            breakpoint and breakpoint.IsValid(),
25            "Breakpoint is valid")
26
27        # Run the program.
28        process = target.LaunchSimple(
29            None, None, self.get_process_working_directory())
30        self.assertTrue(process and process.IsValid(), PROCESS_IS_VALID)
31        self.assertEqual(
32            process.GetState(),
33            lldb.eStateStopped,
34            PROCESS_STOPPED)
35
36        # check the setting value
37        self.expect(
38            "settings show target.process.memory-cache-line-size",
39            patterns=[" = 2048"])
40
41        # Run to completion.
42        process.Continue()
43        self.assertState(process.GetState(), lldb.eStateExited, PROCESS_EXITED)
44