Kernel Testing: Tool and Techniques. Matt Porter Texas Instruments 21 February 2013



Similar documents
LAVA Project Update. Paul Larson

Lab Experiment 1: The LPC 2148 Education Board

A Design of Video Acquisition and Transmission Based on ARM. Ziqiang Hao a, Hongzuo Li b

Open Network Install Environment (ONIE) LinuxCon North America 2015

Introducing the Adafruit Bluefruit LE Sniffer

MediaTek LinkIt Smart 7688 FAQ

Automated Flashing and Testing for Continuous Integration

Pre-tested System-on-Chip Design. Accelerates PLD Development

Eureka Technology. Understanding SD, SDIO and MMC Interface. by Eureka Technology Inc. May 26th, Copyright (C) All Rights Reserved

Ways to Use USB in Embedded Systems

Continuous Integration (CI) for Mobile Applications

EdgeRouter Lite 3-Port Router. Datasheet. Model: ERLite-3. Sophisticated Routing Features. Advanced Security, Monitoring, and Management

Embedded Linux Platform Developer

Useful USB Gadgets on Linux

TPAf KTl Pen source. System Monitoring. Zenoss Core 3.x Network and

The following is a summary of the key features of the ARM Injector:

Bluetooth HC-06 with serial port module Easy guide

Yun Shield User Manual VERSION: 1.0. Yun Shield User Manual 1 / 22.

NI Real-Time Hypervisor for Windows

Software User Guide UG-461

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft Hyper-V Server Agent Version Fix Pack 2.

Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A

Open Network Install Environment

This document is intended to make you familiar with the ServersCheck Monitoring Appliance

BLE113 DEVELOPMENT KIT

1. Introduction Fixture exterior view Connecting the Robe Universal Interface Software update of the fixture...

Installing an OS on a Server

Andreas Läng. Hilscher Gesellschaft für Systemautomation mbh Intelligent solutions for industrial communication.

IPMI overview. Power. I/O expansion. Peripheral UPS logging RAID. power control. recovery. inventory. Hugo CERN-FIO-DS

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

TEST AUTOMATION FRAMEWORK

SNMP-1000 Intelligent SNMP/HTTP System Manager Features Introduction Web-enabled, No Driver Needed Powerful yet Easy to Use

Intro to Intel Galileo - IoT Apps GERARDO CARMONA

SPI I2C LIN Ethernet. u Today: Wired embedded networks. u Next lecture: CAN bus u Then: wireless embedded network

DAKTON µ BOX MANUAL µbox User Manual 1

Guest PC. for Mac OS X. User Guide. Version 1.6. Copyright Lismore Software Systems, Ltd. All rights reserved.

UPS PIco. to be used with. Raspberry Pi B+, A+, B, and A. HAT Compliant. Raspberry Pi is a trademark of the Raspberry Pi Foundation

Datasheet. Advanced Network Routers. Models: ERPro-8, ER-8, ERPoe-5, ERLite-3. Sophisticated Routing Features

ALL-USB-RS422/485. User Manual. USB to Serial Converter RS422/485. ALLNET GmbH Computersysteme Alle Rechte vorbehalten

How To Test Your Code

Advanced Network Routers. Datasheet. Model: ERLite-3, ERPoe-5. Sophisticated Routing Features. Advanced Security, Monitoring, and Management

Going Linux on Massive Multicore

BLADESYSTEM FIRMWARE UPDATES BEST PRACTICES

RPLIDAR. Low Cost 360 degree 2D Laser Scanner (LIDAR) System Development Kit User Manual Rev.1

Short Manual Intellect v SP2 module Unipos Contents:

Pmod peripheral modules are powered by the host via the interface s power and ground pins.

Note: This case study utilizes Packet Tracer. Please see the Chapter 5 Packet Tracer file located in Supplemental Materials.

Using the AVR microcontroller based web server

Only Athena provides complete command over these common enterprise mobility needs.

R&S AFQ100A, R&S AFQ100B I/Q Modulation Generator Supplement

LoadRunner and Performance Center v11.52 Technical Awareness Webinar Training

CI for FPGA D&V. Continuous Integration for FPGA Design and Verification Verification Futures Alan Fitch, Ericsson TV Ltd

Gigabyte Management Console User s Guide (For ASPEED AST 2400 Chipset)

THAKSHASHILA R&D PRIVATE LIMITED COMPANY PROFILE

User manual Compact Web PLC WP240 series IEC-line

Application Discovery Manager User s Guide vcenter Application Discovery Manager 6.2.1

STLinux Software development environment

Smart Card Deployment in the Data Center: Best Practices for Integrating Smart Card Authentication in a Secure KVM Environment

gpio.ipcore: Manual Copyright 2015 taskit GmbH

SABRE Lite Development Kit

Peach Fuzzer Platform

Exploring the Remote Access Configuration Utility

PLC Support Software at Jefferson Lab

Better Integration of Systems Management Hardware with Linux

Wireless Microcontrollers for Environment Management, Asset Tracking and Consumer. October 2009

Configuring a Cisco 2509-RJ Terminal Router

The Bus (PCI and PCI-Express)

Management of VMware ESXi. on HP ProLiant Servers

The fabryq IoT prototyping platform

Adafruit's Raspberry Pi Lesson 5. Using a Console Cable

Running a Program on an AVD

Router Lab Reference Guide

Embedded Linux RADAR device

SBC8600B Single Board Computer

What is a System on a Chip?

Aqua Connect Load Balancer User Manual (Linux)

RAID-01 (ciss) B mass storage driver release notes, edition 2

PT Activity: Configure Cisco Routers for Syslog, NTP, and SSH Operations

Network DK2 DESkey Installation Guide

This techno knowledge paper can help you if: You need to setup a WAN connection between a Patton Router and a NetGuardian.

Building Blocks for PRU Development

HP Education Services Course Overview

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

Custom Solutions Center. Users Guide. Low Cost OEM PackML Templates L02 Release. Version LC-1.0

Versions. Q.station Q.station T. Q.station D. Q.station DT x x

MSITel provides real time telemetry up to 4.8 kbps (2xIridium modem) for balloons/experiments

DKWF121 WF121-A B/G/N MODULE EVALUATION BOARD

Continuous Integration: A case study

Lab Advanced Telnet Operations

Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink

RadioRA 2 (QS) Lighting and Climate Control. g! 5.4 Fan Controller: g! RadioRA2 Inclusive Software v5.0.8 or newer

Deploying the DisplayLink Software using the MSI files

Skynax. Mobility Management System. System Manual

Mobile Labs Plugin for IBM Urban Code Deploy

Application Note. Terminal Server G6

ebus Player Quick Start Guide

FileMaker Server 15. Getting Started Guide

Meraki MX50 Hardware Installation Guide

Transcription:

Kernel Testing: Tool and Techniques Matt Porter Texas Instruments 21 February 2013

Overview Why? Frameworks Lab Tools Tools Techniques (or Test Cases) What Else?

It's a BOF! This is an interactive session I want feedback and ideas along the way All ideas will be captured and documented on the elinux.org wiki

Why? Everybody's Level of Test Sucks Need a test for every line of code we write. It'll never be perfect, but we can be better. Working smarter applies to testing.

Frameworks Not all test frameworks have the same goals Local unit tests LAVA Build/test system validation OpenTest Autotest Jenkins Ktest

LAVA Linaro's Test Framework https://launchpad.net/lava Several components Server Dashboard Scheduler Displays test results Dispatcher Test Shell Interacts with target hardware Execute test plans and returns results to the Dashboard

Opentest TI's Test Framework http://arago-project.org/wiki/index.php/opentest Several components Test Management System - TestLink http://sourceforge.net/projects/testlink/ Test Management Controller Dispatcher Resource Manager Writer Manage test results Service Providers CLI and Web UI Build Execution Engines Test Execution Engines

Autotest Autotest http://autotest.github.com/ Designed for kernel testing but is a full automated test system for any kind of tests Test cases written in python CLI and web driven Used by Chromium OS

Jenkins CI Server http://jenkins-ci.org/ Usually consider a heavy weight corporate CI/build engine Can be used with a variety of plugins for nightly build/tests regression testing triggered by branch push Remote monitoring via mobile device

ktest.pl Simple, upstream kernel test tool tools/testing/ktest/ Build and bisect tests Launch tests on and gather results from a target system Snowball example shows how this tool works well for embedded linux testing

Automation Hardware Tools Lava-lmp https://wiki.linaro.org/people/andygreen/lava-lmp Hardware tool to automate testing of various peripherals SD muxing, USB OTG/host hotplus, SATA/eSATA hotplug, Ethernet hotplug, light sensors, etc Design and PCB layout available. Digiloggers LPC Power Controllers http://www.digital-loggers.com/lpc.html 8 port network controlled power switch, 129 USD USB serial dongle for console server or pick up a used one on ebay Alternative is to build a console server from a cheap developer board with many serial ports for RS-232.

Automation Software Tools Conmux https://github.com/autotest/autotest/wiki/conmux Aggregate various serial consoles under one interface (USB connected, traditional serial, console server ports) Control power or relays from escape command scripts Ttypersist https://github.com/russdill/ttypersist Hides disconnection of usb serial devices

Test Cases LTP http://ltp.cvs.sourceforge.net/viewvc/ltp/ltp/testcases/kernel/ Filled with test cases but here in particular general kernel tests LTP-DDT http://processors.wiki.ti.com/index.php/ltp-ddt Lots of kernel driver test cases Lava-test http://lava-test.readthedocs.org/en/latest/tests.html

Build Our Own Test Cases Networking Iperf Netpef Ping -f Block I/O SPI Bonnie++ Fstress Dt (Data Test) Spidev + spidev_test.c (external loopback)?

Build Our Own Test Cases (continued) I2C? GPIO DMA Loopback? Interrupts? Other device drivers PCIe dmatest.ko Random cards Bus analyzer / exercisers

Getting Creative - sigrok In what ways can we use a general purpose data logging tool like sigrok for test? http://sigrok.org Consider a PWM driver Testing with a servo or LED for qualitative results is insuffcient Setting a PWM for a full range of supported values and verifying the exact expected results using an sigrok capture from a logic analyzer is real test coverage. Where else can this be applied?

Getting Creative spi slave zero In what ways can we get better at testing SPI drivers? One way is to build a universal spi slave device. The problem with SPI driver testing is always that we can't test every device. But we can come closer if we have one device that exercises all spi protocol modes SPI Slave Zero is inspired by USB Gadget Zero http://elinux.org/spislavezero SSZ is defined to do the following: Reset and configure to polarity/phase via GPIOs Handle commands to query max frequency, configure test mode word width, and set test mode Test modes then allow read of a test pattern, sink of writes, and optionally write store and read back of stored data for data integrity testing.

What Else? Are there topics we missed? Other areas you've done creative tests? What works, what doesn't? Everything will be recorded and added to elinux.org wiki