Kismet Kernel Test

From DDCIDeos
Jump to navigationJump to search

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

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:

  1. Checkout, build, and locally install cdproc: https://deos.ddci.com/scm/Deos/products/desk/cdproc/branches/mainline
  2. In kernel experimental tests/:
    1. svn mv databases/tpk918/ProcessDeveloper code/tpk918/etc
    2. Put the below tpk918.cd.xml file into code/tpk918/etc
    3. mkdir junk && cd junk
    4. acquire and copy a tpk918a.exe from somewhere into junk/
    5. tpk918_dir=absolute path to code/tpk918
    6. cdproc-makefile --desk-root={${tpk918_dir},/desk} --extra-components=tpk918 --extra-components=development-support qemu-arm
    7. make deosBoot.qemu
    8. 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

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.