Runtime Root feature Jason Kenny.

Slides:



Advertisements
Similar presentations
Introduction to Eclipse. Start Eclipse Click and then click Eclipse from the menu: Or open a shell and type eclipse after the prompt.
Advertisements

Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
High Productivity Computing Systems for Command and Control 13 th ICCRTS: C2 for Complex Endeavors Bellevue, WA June 17 – 19, 2008 Scott Spetka – SUNYIT.
Module: Definition ● A logical collection of related program entities ● Not necessarily a physical concept, e.g., file, function, class, package ● Often.
Building and debugging Electric 1 Building and debugging GNU Electric version 8.08 by Java SDK & Eclipse (Ganymede) by Kazzz (a Japanese engineer) May.
Reproducible Environment for Scientific Applications (Lab session) Tak-Lon (Stephen) Wu.
NDT Tools Tutorial: How-To setup your own NDT server Rich Carlson Summer 04 Joint Tech July 19, 2004.
1 SEEM3460 Tutorial Unix Introduction. 2 Introduction What is Unix? An operation system (OS), similar to Windows, MacOS X Why learn Unix? Greatest Software.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Renesas Technology America Inc. 1 M16C/Tiny SKP Tutorial 2 Creating A New Project Using HEW4.
Unit Testing & Defensive Programming. F-22 Raptor Fighter.
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
Linux Operations and Administration
ZFApp Preview Walkthrough. What is ZFApp? ZFApp is an application framework built on top of Zend Framework Fully compatible with the latest ZF Versions.
SUSE Linux Enterprise Server Administration (Course 3037) Chapter 4 Manage Software for SUSE Linux Enterprise Server.
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
Guideline: How to build AMSS source code? History: 01/02/ Make Draft 05/02/2010 – Release /02/2010 – Updated.
WebVizOr: A Fault Detection Visualization Tool for Web Applications Goal: Illustrate and evaluate the uses of WebVizOr, a new tool to aid web application.
© Blackboard, Inc. All rights reserved. Deploying a complex building block Andre Koehorst Learning Lab Universiteit Maastricht, the Netherlands July 18.
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
COP 3330 Notes 1/12. Today's topics Downloading Java and Eclipse Hello World Basic control structures Basic I/O Strings.
Introduction to Eclipse CSC 216 Lecture 3 Ed Gehringer Using (with permission) slides developed by— Dwight Deugo Nesa Matic
JCreator Tonga Institute of Higher Education. Programming with the command line and notepad is difficult. DOS disadvantages  User Interface (UI) is not.
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
DireXions – Your Tool Box just got Bigger PxPlus Version Control System Using TortoiseSVN Presented by: Jane Raymond.
Unit Testing with JUnit and Clover Based on material from: Daniel Amyot JUnit Web site.
1. When things go wrong: how to find SQL error Sveta Smirnova Principle Technical Support Engineer, Oracle.
October 10-11, 2002 Houston, Texas Erik DeBenedictis William McLendon Mike Carifio Sandia is a multiprogram laboratory operated by Sandia Corporation,
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
GRIN-Global Public Interface Presentation to the TSG Wednesday, August 12, 2009.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
Reconfigurable Communication Interface Between FASTER and RTSim Dec0907.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Debugging tools in Flash CIS 126. Debugging Flash provides several tools for testing ActionScript in your SWF files. –The Debugger, lets you find errors.
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
Add New File or a Directory to a Project in the Repository.
Execution ways of program References: www. en.wikipedia.org/wiki/Integrated_development_environment  You can execute or run a simple java program with.
Python: File Directories What is a directory? A hierarchical file system that contains folders and files. Directory (root folder) Sub-directory (folder.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
UPLOADING DOCUMENTS IN MURA. Two Options 1.Upload as a “page” in your navigation (preferred)  Easier to find, delete and maintain  Can upload revisions.
The GWB installation directory must be in your Path
Stress Free Deployments with Octopus Deploy
Python’s Modules Noah Black.
Connect:Direct for UNIX v4.2.x Silent Installation
Over the Air Download Peripheral Device Central Device Slave Master
JSP (Java Server Page) JSP is server side technology which is used to create dynamic web pages just like Servlet technology. This is mainly used for implementing.
CARA 3.10 Major New Features
Data Transport for Online & Offline Processing
State of Testing Jason Kenny – ATS committer.
Introduction Purpose Objectives Content Learning Time
Eclipse Navigation & Usage.
Installation, Configuration, Examples of use
Releases and developments
Executing Runtime Checks (For Comp401 and Comp410)
Experience with jemalloc
June 2011 David Front Weizmann Institute
Creating and Modifying Text part 2
SharePoint-Hosted Apps and JavaScript
Instructor: Prasun Dewan (FB 150,
Test Automation For Web-Based Applications
TRANSLATORS AND IDEs Key Revision Points.
Shells, Help, and Paths.
JENKINS TIPS Ideas for making your life with Jenkins easier
CS 240 – Advanced Programming Concepts
Getting Started With Solr
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
 A function is a named sequence of statement(s) that performs a computation. It contains  line of code(s) that are executed sequentially from top.
Assignment resource Working with Excel Tables, PivotTables, and Pivot Charts Fairhurst pp The commands on these slides work with the Week 2 Excel.
Presentation transcript:

Runtime Root feature Jason Kenny

Why do this! Make ATS easier to use Make ATS easier to package Current logic is difficult to follow and not consistent between different tools Current TS_ROOT logic does not work correctly for all tools Make ATS easier to package Can define relocatable packages types ATS will not have to define the install location at compiler time. The packaging system can define this as it should Make it easier to Test Current TS_ROOT logic requires us: three directories that need to have chown set to nobody 11 PROXY_CONFIG_XXX values that have to be set Copy/Setup of 160 – 245 files

What is wrong with TS_ROOT TS_ROOT is based on replacing a compile “package install root” location Setting up all the needed paths and file is not clearly documented and difficult to get correct Can not easily modify subdirectory location Layouts for many system have data location that are absolute paths that are defined without $PREFIX variable There are currently two paths for how a directory is found: Layout class: Gets compile time locations Modifies the value with TS_ROOT Default config values for records.config Get compile time locations Does not modify with TS_ROOT

What is the Run Root Feature Allow ATS to detect/define layout at run time. Clean up the logic in the ATS on how it can discover where to find the data files Provide a command line tools to help manage creation of new sandbox roots

Run time logic Everything goes through Layout class Layout is defined by a YAML file Load logic: Command line option --run-root Environment variable TS_RUNROOT TS_ROOT Environment Variable Look in current directory and look up N (default 2) directories for Yaml File Look in executable directory and look up N directories for Yaml File Compiler defaults in layout class

runroot_path.yaml example (current) prefix: /Users/jkenny/ats/mysandbox/ exec_prefix: /Users/jkenny/ats/mysandbox/ includedir: /Users/jkenny/ats/mysandbox/include localstatedir: /Users/jkenny/ats/mysandbox/var bindir: /Users/jkenny/ats/mysandbox/bin logdir: /Users/jkenny/ats/mysandbox/var/log/trafficserver mandir: /Users/jkenny/ats/mysandbox/share/man sbindir: /Users/jkenny/ats/mysandbox/bin sysconfdir: /Users/jkenny/ats/mysandbox/etc/trafficserver datadir: /Users/jkenny/ats/mysandbox/share/trafficserver libexecdir: /Users/jkenny/ats/mysandbox/libexec/trafficserver libdir: /Users/jkenny/ats/mysandbox/lib runtimedir: /Users/jkenny/ats/mysandbox/var/trafficserver infodir: /Users/jkenny/ats/mysandbox/info cachedir: /Users/jkenny/ats/mysandbox/var/trafficserver

Addition to traffic_layout (WIP) Usage: traffic_layout [--SWITCH [ARG]]   switch______type__default___description   -l, --layout       tog   false     Show the layout (this is the default with no options given)   -f, --features    tog   false     Show the compiled features   -j, --json           tog   false     Produce output in JSON format (when supported)   -i, --init                 Initialize the ts_runroot sandbox (details in traffic_layout --init -h)   -r, --remove          remove the ts_runroot sandbox (details in traffic_layout --remove -h)       --force               force flag for init (details in traffic_layout --force -h)   -h, --help              Print usage information   -V, --version         Print version string       --run-root        using TS_RUNROOT as sandbox

What is next Support relative paths in yaml file Add verify logic to check that sandbox is good Create sandbox based on values in a yaml file Better name for yaml file?

Quick State of Testing Update! Jason Kenny

Unit Testing We are using Catch now!! Features https://github.com/philsquared/Catch Features Not painful to write tests (some say pleasant) Easy to partition test grouping Easy to filter which test to run Clean reporting on error and what is wrong

Quick Example TEST_CASE( "vectors can be sized and resized", "[vector]" ) { std::vector<int> v( 5 ); REQUIRE( v.size() == 5 ); REQUIRE( v.capacity() >= 5 ); SECTION( "resizing bigger changes size and capacity" ) { v.resize( 10 ); REQUIRE( v.size() == 10 ); REQUIRE( v.capacity() >= 10 ); } SECTION( "resizing smaller changes size but not capacity" ) { v.resize( 0 ); REQUIRE( v.size() == 0 );

Plans with Catch Move all unit tests to use Catch Move regression tests that should be unit test to Catch

Autest (Some Highlight) Added a list command ie: autest list [-f filter] [--json] Added a When.FileModified(file) to delay start of a process Add Conditions: IsElevated – are we running elevated RunCommand – run some command, check return code CheckOutput – run a command, provide callback to stdout/err output EnsureVersion – run a command, check for a version pattern or given callback.

AuTest Extensions( Quick summary) Add some new conditions: PluginExists – tests that plugin exists HasATSFeature – Test that ATS was built with a given feature HasCurlFeature – Test that Curl has a needed feature ( such as H2 support) Adding in MakeDNServer(…) Still work in progress Fixes to MakeATSProcess() Will now work with build layouts with absolute paths Added prepare_plugin() Fixes to Microserver Lots of new tests have been added Thanks you to all that have add tests

What we need to get added (please help) Clients/Server that create error states on purpose Better H2 clients QUIK client, server Derek has added tcp_client.py Send raw data over socket and dumps raw data it receives

Thank You Questions?