Kismet Kernel Test
Kismet kernel test epicenter.
Marketing Level Overview
The contents of this page are intended for engineers working on the Kismet Kernel_64 test team. Its purpose is to identify test case and test procedure work that needs to be completed. Engineers are expected to manage the contents of the page as work is assigned and completed.
Weekly meeting
When: Wed at 10AM MST
Where: https://meet.google.com/gev-tnit-yov
Phone Number: (US) +1 505-636-0137 PIN: 781 453 416#
What: Address issues/roadblocks.
Team
E-Mail to the whole team
Daniel Riquelme
Hernaldo Ramirez
Mark Sygrove
Ron Rische (RDR)
Development Environment
Kismet Docker DESK_On_Docker_Project and WSL Readme Also make note of DDCI_Linux_Hints
Test Environment
Same as Development Environment. Need unreleased vfile and test-infrastructure (2.9.0-3) for now.
Build tests from clean environment.
cd ~/scm/Deos/products/kernel/kernel/branches/experimental/tests svn up ./common/test-utils/regress reallyClean ./common/test-utils/regress -q kernel so qemu-aarch64 qemu-arm qemu-ppc qemu-x86_64 build
Experimental Test Configuration Using cdproc
This is highly experimental. Ask Ron before doing anything with this. In fact, don't even read this sentence without asking Ron. Arg, you can't follow instructions can you?
In a kismet maintainer environment:
- Checkout, build, and locally install cdproc: https://deos.ddci.com/scm/Deos/products/desk/cdproc/branches/mainline
- In kernel experimental tests/:
- svn mv databases/tpk918/ProcessDeveloper code/tpk918/etc
- Put the below tpk918.cd.xml file into code/tpk918/etc
- mkdir junk && cd junk
- acquire and copy a tpk918a.exe from somewhere into junk/
- tpk918_dir=absolute path to code/tpk918
- cdproc-makefile --desk-root={${tpk918_dir},/desk} --extra-components=tpk918 --extra-components=development-support qemu-arm
- make deosBoot.qemu
- startqemu &
tpk918.cd.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<componentDescriptor xmlns="http://www.ddci.com/cdoptions">
<registry>tpk918_platreg</registry>
<registry>platregd</registry>
<!-- This is dubious. standard-apps.cd.xml restricts gdb-server to only be in
registry=platreg. Perhaps standard-apps should not have that restriction. -->
<depend registry="tpk918_platreg">gdb-server</depend>
<kernelFile>platreg.bin,tpk918_platreg-itfiles/tpk918_platreg.bin</kernelFile>
<kernelFile>tpk918a.exe</kernelFile>
<kernelFile>TODO: Ron, you have to put the test result file in here</kernelFile>
<itFile>TPK918A.pd.xml</itFile>
</componentDescriptor>
Tasks
Test Procedures
Kernel Tests experimental branch
| TPK### | PCR(s) | Status | Assignee | Comments |
|---|---|---|---|---|
| tpk000 | PCRs:13622,13861 | Done-ish | RDR | 64-bit fail |
| tpk012 | PCRs:13622,13861 | In Work | DR | PDT and mempools port. |
| tpk052 | PCRs:13622,13861 | Done | DR | Timing issues on QEMU remain |
| tpk053 | PCRs:13622,13861 | Done-ish | DR | restartProcess: Hangs at an atomic call |
| tpk152 | PCRs:13622,13861 | Done | DR | Left a wait in between mode changes |
| tpk159 | PCRs:13622,13861 | Done | DR | 64-bit fail |
| tpk234 | PCRs:13622,13861 | Done-ish | DR | Commited changes without testing them. Might have problems. |
| tpk253 | PCRs:13622,13861 | Done | DR | Process own an interrupt already owned |
| tpk290 | PCRs:13622,13861 | Done | HR | Memory layout and test info |
| tpk403 | PCRs:13622,13861 | In Work | DR | Problems with exceptions. |
| tpk460 | PCRs:13622,13861 | Done-ish | DR | Commited changes without testing them. Might have problems. |
| tpk493 | PCRs:13622,13861 | Done | DR | readPhysicalMemory and writePhysicalMemory. |
| tpk533 | PCRs:13622,13861 | Done-ish | DR | Commited changes without testing them. Might have problems. |
| tpk041 | PCRs:13622,13861 | Done | HR | getTestProcessStateInfo(), TestCase200 failing just in qemu, passing for real hardware release/debug variants |
| tpk033 | PCRs:13622,13861 | Done | HR | waitUntilNextInterval(), currentThreadIntervalID(), waitUntilNextPeriod(), already passing for real hardware |
| tpk190 | PCRs:13622,13861 | Done | HR | platformSpecificInfoPTR API |
| tpk182 | PCRs:13622,13861 | Done | HR | supervisorModeCallback() API, aarch64 done, x86_64 done |
| tpk135 | PCRs:13622,13861 | Done | HR | Test some event log services, issue returned: buffer different than expected. |
| tpk291 | PCRs:13622,13861 | In Work | HR | Creating test for kernelObjectIndexPPI(). are the reqs done? PCR:16692 |
| tpk289 | PCRs:13622,13861 | In Work | DR | Creating test for kernelObjectIndex(). PCR:16692 |
| tpk082 | PCRs:13622,13861 | In Work | HR | DEOS_TEST_INFO structure |
| tpk160 | PCRs:13622,13861 | In Work | HR | DEOS_TEST_INFO structure |
Test Harness
test-infrastructure component
- Are there recommended updates?
- Is unrelease 2.9.0 ready to be released?
test-utils
- Are common build-utils updates needed? Build Utils PCRs
- Are common test-utils updates needed? Test Utils PCRs
- generateMemPoolHdr.py/platformMemPoolVals.h PCR:15574
- ConsumeRAM PCR:15322
- PIA updates PCR:15162
- 64-bit support PCR:14939
Summary of changes (See release notes for details):
- Removed some deprecated headers.
- Various functions removed e.g. setKernelAttributes to mapPhysicalAddress
- PE support removed.
- ELF symbol resolution changed (see UG Resolving Symbols).
- Added support for aarch64 and x86_64 target architectures.
- Added ELF image support of COPY relocations.
- Fix a bug that could cause mapViewOfPlatformResource() and mapViewOfKernelFileByHandle() (of file in MFS) to map incorrectly - investigate why test did not detect.
- Fixed PCR:14991 CPSR is not properly restored after an interrupt in kernel mode.
- Fixed PCR:15125 Kernel incorrectly handles offset relocation types used for variables declared thread_local.
- Fixed PCR:15126 Result of calling getLibrarySymbolAddress() on a variable declared thread_local is not correct.
- Fixed PCR:15355 Process with relocatable executable cannot have automounted owned filesystem.
Kernel 11.3.x
- Add support for the R_ARM_NONE relocation type.
- Updated resourceStatus to ensure the enum supports a full integer range.
- getLibrarySymbolAddress()'s support for libraryBreadthFirstKernel was removed and replaced with support for libraryBreadthFirstNext.
Kernel 11.2.x
- Python3_Port updates?
- Can tests be built?
- Classify tests into Categories.
- Category 1: Tests which can be built now.
- Category 2: Tests which require build-utils/test-utils updates.
- Category 3: Tests which require common test code updates.
- Category 4: Tests which require kernel updates.
Porting Activities
all architectures
- infrastructure cdproc integration.
- infrastructure kernel stack usage reporting.
- infrastructure modify ELF (compiler ports.)
- infrastructure multiple platform memory pools.
- infrastructure PAL interceptor.
- infrastructure test specific feature providers.
- tpk??? exception parameter updates.
- tpk??? permissive cast warnings.
- tpk??? process restart count updates.
- tpk??? system tick pointer/count various updates.
- tpk247 getLibrarySymbolAddress() test case 140 investigation.
aarch64
- tpk??? consumeRAM VAS porting.
- tpk??? PAL interrupt porting.
- tpk??? supervisorMode port.
- tpk143 VAS Updates a.k.a. procmem_addresses.sh.
- tpk918 Require cert candidate version (low priority).
arm (32-bit)
- tpk??? consumeRAM VAS porting.
- tpk062 Test Case 160 - times out access violation in tpk062e.
ppc (32-bit)
- tpk??? consumeRAM VAS porting.
x86 (32-bit)
x86_64
- tpk??? consumeRAM VAS porting.