Automated Flashing and Testing for Continuous Integration



Similar documents
A M D DA S 1. 0 For the Manageability, Virtualization and Security of Embedded Solutions

ovirt self-hosted engine seamless deployment

IP Address and Pre-configuration Information

LANDesk White Paper. LANDesk Management Suite for Lenovo Secure Managed Client

Open Network Install Environment

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

DeployStudio Server Quick Install

ReadyNAS Setup Manual

Advanced Diploma In Hardware, Networking & Server Configuration

VMware vsphere 5 Quick Start Guide

System Area Manager. Remote Management

Digi Connect WAN Application Helper Configuring and Testing the Digi Connect WAN GSM

How To Connect To Bloomerg.Com With A Network Card From A Powerline To A Powerpoint Terminal On A Microsoft Powerbook (Powerline) On A Blackberry Or Ipnet (Powerbook) On An Ipnet Box On

Table of Contents. Safety Warnings..3. Introduction.. 4. Host-side Remote Desktop Connection.. 5. Setting Date and Time... 7

AC : A VIRTUALIZED NETWORK TEACHING LABORATORY

Hacking Satellite TV receivers : Are those IoT devices secure?

APC Enterprise KVM Switches

Why Use ThinManager to Manage Thin Clients? White Paper. For more information, please visit:

Advanced Server Virtualization: Vmware and Microsoft Platforms in the Virtual Data Center

READYNAS INSTANT STORAGE. Quick Installation Guide

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

ReadyNAS Duo Setup Manual

Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the

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

Computrace Agent Quick Reference and Best Practices Guide

QOS 8 High-Speed RAID System Guide

Running a Program on an AVD

Arduino Wifi shield And reciever. 5V adapter. Connecting wifi module on shield: Make sure the wifi unit is connected the following way on the shield:

Honeywell Internet Connection Module

DIY Device Cloud Documentation

SSH to BeagleBone Black over USB

MODULE 3 VIRTUALIZED DATA CENTER COMPUTE

Migrating to ESXi: How To

Software installation and configuration IEC-line series

Alexander installation and configuration guide.

NETGEAR SMB Storage Line Update and ReadyNAS 2100 Introduction

Trusteer Rapport Virtual Implementation Scenarios

PCoIP Infrastructure Deployment Guide. TER Issue 1

Deployment Guide: Unidesk and Hyper- V

JOB READY ASSESSMENT BLUEPRINT COMPUTER NETWORKING FUNDAMENTALS - PILOT. Test Code: 4514 Version: 01

Open Network Install Environment (ONIE) LinuxCon North America 2015

Active Directory Infrastructure Design Document

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Configuring a customer owned router to function as a switch with Ultra TV

Elements of robot assisted test systems

Administering the Network Analysis Module. Cisco IOS Software. Logging In to the NAM with Cisco IOS Software CHAPTER

Deploying Windows Streaming Media Servers NLB Cluster and metasan

vsphere Upgrade vsphere 6.0 EN

50-Port 10/100/1000Mbps with 4 Shared SFP. Managed Gigabit Switch WGSW Quick Installation Guide

Secure Networks for Process Control

Savvius Insight Initial Configuration

Dell EqualLogic Red Hat Enterprise Linux 6.2 Boot from SAN

1 PC to WX64 direction connection with crossover cable or hub/switch

How To Use Softxpand (A Thin Client) On A Pc Or Laptop Or Mac Or Macbook Or Ipad (For A Powerbook)

Learning Series. ThinManager Versus The Competition. A comparison in the thin client management market.

EXPLORING LINUX KERNEL: THE EASY WAY!

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

Intro to Intel Galileo - IoT Apps GERARDO CARMONA

virtualization.info Review Center SWsoft Virtuozzo (for Windows) //

CPSC 226 Lab Nine Fall 2015

How To Configure A Vyatta As A Ds Internet Connection Router/Gateway With A Web Server On A Dspv.Net (Dspv) On A Network With A D

How To Manage A Virtualization Server

SGI NAS. Quick Start Guide a

Intel Management Engine BIOS Extension (Intel MEBX) User s Guide

Medical Networks and Operating Systems

NetSupport Manager v11

H0/H2/H4 -ECOM100 DHCP & HTML Configuration. H0/H2/H4--ECOM100 DHCP Disabling DHCP and Assigning a Static IP Address Using HTML Configuration

WhatsUpGold. v3.0. WhatsConnected User Guide

Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM

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

Argon Client Management Services- Frequently Asked Questions (FAQ)

Exploring the Remote Access Configuration Utility

VMware vsphere 5.0 Evaluation Guide

Virtual Appliance for VMware Server. Getting Started Guide. Revision Warning and Disclaimer

3.5 EXTERNAL NETWORK HDD. User s Manual

How To Use 1Bay 1Bay From Awn.Net On A Pc Or Mac Or Ipad (For Pc Or Ipa) With A Network Box (For Mac) With An Ipad Or Ipod (For Ipad) With The

ClearOS Network, Gateway, Server Quick Start Guide

ODP Application proof point: OpenFastPath. ODP mini-summit

ICANWK401A Install and manage a server

IBM TSM DISASTER RECOVERY BEST PRACTICES WITH EMC DATA DOMAIN DEDUPLICATION STORAGE

SIP-DECT Knowledge Base SIP-DECT System Update

Computer Automation Techniques. Arthur Carroll

Guide to the LBaaS plugin ver for Fuel

Out-of-Band Management: the Integrated Approach to Remote IT Infrastructure Management

Parallels Mac Management v4.0

«Disaster Recovery» A DOM Restore Guide for Thecus NAS

USB Flash Drive User s Manual

Options in Open Source Virtualization and Cloud Computing. Andrew Hadinyoto Republic Polytechnic

Self Help Guide IMPORTANT! Configuring Your Router With Your Modem. Please read the following carefully; This Guide refers to the following Products:

20 System Overview. Note: It is a good idea to schedule an automatic backup of your configuration. See Scheduling for details. ACP ThinManager 6.

Reducing Configuration Complexity with Next Gen IoT Networks

Reboot the ExtraHop System and Test Hardware with the Rescue USB Flash Drive

Course Description and Outline. IT Essential II: Network Operating Systems V2.0

AlienVault. Unified Security Management (USM) x Initial Setup Guide

TimeIPS Server. IPS256T Virtual Machine. Installation Guide

Prototyping Connected-Devices for the Internet of Things. Angus Wong

PZVM1 Administration Guide. V1.1 February 2014 Alain Ganuchaud. Page 1/27

VoIP Conformance Labs

Transcription:

Automated Flashing and Testing for Continuous Integration Igor Stoppa Embedded Linux Conference North America 2015 1

Automated Flasher Tester AFT Tool for deploying and verifying a SW image on an appropriate target HW device. Easily integrate with existing setup. Minimize requirements of the setup (including cost). Easily scale both the number and the type of units. Minimal deployment & testing time. Keep close to real life conditions. Enable Developers to test before submitting, using identical means of verification. 2

Continuous Integration Merge contributions often, even multiple times per day, but only if they meet the following requirements: 1. Patches must apply cleanly. 2. Patched SW must build cleanly - at least not worse than prepatching. 3. Generated SW image must deploy successfully to the Device Under Test (DUT). 4. Deployed SW image must boot. 5. Deployed image must pass a set of predefined test cases. Only what is tested can be expected to work. 3

Why yet another tool? Several proprietary solutions available but: focused only on one architecture non open source - hinders sharing publicly testing methods / results Other public solutions, ex: LAVA (Linaro) not alternative, rather complementary LAVA provides lots of infrastructure (queuing, result visualization, etc.) AFT focuses on optimizing deployment and test execution. Let developers use locally exactly the same test configuration used by CI. install and configure the tool painlessly 4

Woes of Continuous Integration Speed: building and testing can take a long time, but it s needed frequently parallelize sw build - throw in more servers parallelize testing - but deployng the SW image can still take a long time! Multiple-targets: supporting multiple platform/arch is resources-intensive build infrastructure can adjust (run different cross compilers/qemu) each new type of HW needs ad-hoc work: expensive and slow. during the project the HW to support will likely change. Optimizing Deployment & Testing can have high returns. 5

Key Features Interaction with DUT Standardize the interaction: do not use specific interfaces/apis. Rather, emulate the user: plug/unplug power enter data from a (USB) keyboard issue commands to transfer data over a network connection. Deployment of SW image to test Deploy the same image produced by the build system, directly to the DUT. Allow passwordless login by injecting the ssh public key of the testing harness, for the root user. 6

High level view DUT 1.1 Testing Harness 1 DUT 1.2... Build Cloud or Developer s workstation DUT 1.m Testing Harness 2 DUTs associated to Testing Harness 2... Testing Harness n DUTs associated to Testing Harness n 7

Simplified Model Mains Power-cycling Build Cloud or Developer s workstation User-input emulation Test Results Testing Harness (PC) SW Image DNS DHCP NFS USB keyboard emulator DUT (ex: MinnowMax) OpenSUSE USB key Local Network 8

HW configuration 2 1. MinnowBoard Max 2. Minnow Power Supply 3. USB-controlled power cutter. 8 6 7 9 4 1 5 3 4. OpenSUSE Thumb drive 5. SD Card (target media) 6. Arduino UNO R3 7. USB to Serial port Control interface for UNO 8. Programming toggle for UNO USB port. 9. Ethernet port 9

SW Stack & Data Test Cases Plugins: execution of basic commands system services... AFT-Core module DUT Plugins: remote access (ex: ssh) remote OS deployment device identification Power Control Plugin Test Plan Devices Types Actual Topology 10

Main Steps (ex: MinnowBoard Max) 1. Verify compatibility: is the image supported and is there a suitable device? 2. Allocate device compatible with the SW image. 3. Power-cycle and boot the DUT into service mode from the OpenSUSE USB key. 4. Deploy the test SW image to the target storage - it is taken from an nfs share. 5. Install the public ssh key used by the Testing Harness for the DUT root user. 6. Power-cycle and boot the DUT into testing mode, from the image just deployed. 7. Check for availability and run the selected test plan. 8. Report back the test results, in xunit format. 11

But it was not always easy... System Partitioning: many SW components are specific to the HW they drive (ex: power switch) and the interface used must support various models from different vendors. BIOS configuration: some (most?) BIOSes rearrange the sequence of the boot devices, others can completely lose their settings when the DUT is powercycled - the only foolproof solution is to reconfigure the BIOS at each iteration. More BIOS blues: at some point one device changed autonomously MAC address - reason still unknown. System Architecture: initial idea - Testing Harness as VM - qemu cannot reliably pass to the VM 2+ USB devices with same VendorID:DeviceID - Doh. Network Interfaces: OpenSUSE network manager (wicked) cannot bring up interfaces with static IP and no carrier. USB thumb drives: some brands dropped like flies, after undergoing only a few power-cycles. 12

USB Keyboard Emulation Based on Arduino UNO R3, the only one currently capable of interfacing with BIOSes Uses LUFA FW to emulate the USB protocol. Uses only libraries with GPLv2 compatible license. Messaging protocol to detect data losses It costs ~ $7, while the cheapest commercial alternative is above $100 Supports: record/playback of keys LibreOffice Calc sheet sequence generated on-the-fly USB Master Testing Harness USB to Serial SW Serial DUT Arduino UNO R3 2nd ATMega USB Master 13

Does it meet the requirements? All the requirements were met: The only requirement toward the target OS is to provide means for login access. Adding support for new OS (Yocto) and new HW (NUC, MinnowBoardMax) took less than a week. Depending on the performance of the DUT, a deployment & basic testing session can last between 3 and 10 minutes. The BOM per-device is fairly frugal and relies solely on inexpensive offthe shelf CE devices, easily obtainable in large amounts, worldwide. Everything, from the SW to the HW setup, is public and can be reproduced anywhere. 14

Ideas for future development Support more architectures/boards. Ex: Edison, Quark, BeagleBone Black, WandBoard Quad, ODroid. Support more flavors of power cutter. Ex: ethernet controlled. Replace USB-Serial interface with ethernet. Use Edison as testing harness, rather than a PC. Support test cases run with fmbt (https://01.org/fmbt) 15

References Automated Flasher Tester: https://github.com/igor-stoppa - all the aft-* projects USB Keyboard Emulator (Peripheral EMulator): https://github.com/igor-stoppa/pem 16

Q&A