SlideShare a Scribd company logo
 Linux Distribution Automated Testing
Linux
Distrbution
Automated
Testing
Aleksander Baranowski
EuroLinux
Testwarez 2018
Zakopane, 15th November 2018
[you@host creator]$ ./configure
[you@host creator]$ make
[you@host creator]$ make install
Divide
&&
Conquer
● Making the whole operating
system at once is suicide
mission.
● Split the Linux distribution
into smaller parts, that can
be quite easily produced,
replaced and tested.
● This smaller parts are in most
cases (some people will call
them differently, but the idea
is the same) are called
packages.
The
Basics
Glossary
● Linux – Monolithic Unix-like
computer operating system
**KERNEL**.
● Linux Distribution (Distro) –
GNU/Linux operating system.
● Upstream – original author/s
and/or maintainer/s. May refer
to the project or institution
(ex. Apache).
The
Basics
Glossary
● Repository – Set of Packages
with metadata.
● System Image – File/files that
contains “frozen” version of
system – e.g. Installation
ISO.
●
Cloud Image – System image
that is provided in choosen
cloud solution.
[you@host ]$ pre_check
Please answer following:
1
● Which software should we pack?
● Sample: SSL/TLS – Google
Boring SSL, OpenSSL or BSD
LibreSSL?
● A lot of software depends on
this libraries, and they won't
provide compatible API/ABI.
2 ● Second fundamental problem is
software (package) versioning.
● LTS, ROLLING, HyBriD.
3
4
● How software will be packed?
● Source?
●
Ports?
● Binary?
[you@host ]$ clone packages
Man
Package
+------------+
| Upstream |
+-----> |
| +-----+------+
| |
| +-----v------+
+-----+ Packager |
+-----+------+
|
+-----v------+
| Package |
+-----+------+
|
+-----v------+
| Distro |
+------------+
Man
Packages
● The packager needs to monitor
state of packages.
● The package is no self-
sufficient (dependencies).
● Sometimes the build
environment is much different
than runtime.
● Tests and 0-days
Apropos
Packages
● Dependency HELL!
● Lots of metainfos:
Provides
Requires
Build Requires
[you@host ]$ ./compile groups
The
Repo
●
After making packages, we can
move to the next steps:
● Making repository
●
Making groups (skippable).
● Making environments
(skippable).
● After making packages, we can
move to the next steps:
● Making repository
● Making groups (skippable).
● Making environments
(skippable).
The
Repo
● Packages ID, Name, Version,
Release, etc.
●
Filelist provided by each
package.
● Checksums (e.g. sha256,
sha512)
● Changelogs.
● PGP/GPG keys used to sign
packages.
● Groups and environments.
The
Group
● Logically linked packages.
● Sample groups:
core
FTP Server
HTTP Server
Ruby Development
Python 3.6
The
Environment
● Use cases of our distro.
● Group of groups.
● Sample environments:
Developer Workstation
Gnome3 Desktop
KDE Plasma Desktop
[you@host creator]$ release me
Release
Images
● Holy Installation ISO
● Virtualization Images
● Cloud Images
● Containers
● Automatic installation
●
Release
Updates
● Time Based
● Point Based
●
Automated way
● Security packages can
disturbed the process.
[you@host creator]$ test me
Get(
Current,
State,
*args)
Community
Tested
● Tests Days.
● Testing repositories.
● Beta testing of whole
releases.
● No any meaningful tests/tests
sets on VCS.
● No CI/CD publicly available
solutions.
Community
Tested
● The current state might be
discouraging.
● Testing Linux distribution
means testing thousand of
packages.
[you@host t_utils]$ retest package
Challenges
Of
Package
Testing
● Package testing must be built
in build process.
CoPT
Attitude
Making binaries for Linux
desktop applications is a major
f*****g pain in the a**. You
don’t make binaries for Linux,
you make binaries for Fedora 19,
Fedora 20, maybe even RHEL5 from
10 years ago. You make binaries
for Debian Stable…well no, you
don't make binaries for Debian
Stable because Debian Stable has
libraries that are so old that
anything built in the last
century doesn’t work – Linus
Torvalds
CoPT
Attitude
CoPT
Tests???
● Some project has next to not
existent tests sets.
● This is a common problem with
free/libre software.
●
The pattern is changing :).
CoPT
Tests!!!
● The reverse of the previous
one.
● Too many way to test software!
● Linux Kernel is great example.
CoPT
Less;
More
● Test patches introduced by
distribution.
● Test backported features, that
test cannot be backported.
● Package builders support for
tests.
● These tests are the easiest to
automate.
● Check the chosen attributes:
PGP/GPG
Checksums
License and description
Packager, Vendor, Provider
Build Host
Sources URL.
Test
On
Metadata
● Package builders (the programs
not the physical/virtual
machines) have minimal support
for testing.
● No snapshot, tests, revert
mechanism.
● Build != Runtime Environment.
Test
During
Package
Build
● Each package need different
means to be tested.
Test
During
Package
Build
● Each package need different
means to test.
● Read: How to runtests.
● Build != Runtime Environment.
Test
During
Package
Build
Challenges
Of
Package
Testing
● Package testing must be built
in build process.
[you@host t_utils]$ test repo
● Repositry is the set of
packages with metadata.
● Test CDN.
● Tests metadata.
Test
Repository
Metadata
● There are multiple operations
that can be achived with
working repository: Update,
Downgrade, Install, Group
Install, Env Install, Remove.
● Randomly selected, chained
● Test system consitency;
services (with default
configuration).
Test
Repository
$RANDOM
● We can make graph (V=packages,
E=dependency).
● Check for dependencies.
● Search isolated verticles.
● Extremly useful for updates
testing – neighbourhood.
Test
Repository
Graph
● Repoclosure – check if all
dependencies in repository can
be resolved.
● Make impact score. How many
packages are dependent,
calculated with nested
neighbourhood.
Test
Repository
Graph
[you@host t_utils]$ test use-case
● There are automation platform,
Puppet, Salt, Ansible.
● Puppet -> Puppet Forge, Salt
-> Salt Stack Formulas,
Ansible -> Ansible Galaxy
● Ready to use then test use
cases.
How
To
Obtain
Use Cases
● LAMP (Linux; Apache; MySQL;
PHP)
● NFS
● Samba
● Web server
● HA
Sample
Use Cases
● This is good idea to have core
test suite.
● Minimal acceptance tests that
can be always run.
● Mix of different tests, with
different test levels.
The
core
test
suite
[you@host t_utils]$ test image
● Each distribution finally need
at least one image that allows
to install the system.
● In most cases it’s the first
ISO is made on „donor”
computer.
● Since then most distributions
can be self-hosted.
● Installator that supports
unattended/automatic
deployment FTW!
The
Holy
One
First
ISO
● Installation ISO must go
through multiple tests:
● Install selected groups (about
20 on single ISO).
● Different FS.
● Different HW, bare metal or
virtualized.
The
Holy
One
First
ISO
● Each image should pass the
core test suite.
● The documentation of the
solution is beneficial.
● Sometimes we have to use third
party software and go their
tests.
Tests
On
Different
Images
● Allows testing whole
distribution lifecycle.
● Uses virtual machines to make
reproducible tests.
● Sponsored by SUSE.
● Tests with support for
keyboard, mouse input, gather
information from the serial
console, getting images from
the screen and much more.
OpenQA
open.qa
OpenQA
Like
Selenium
● For Linux Distros.
● With Perl :(.
[you@host t_utils]$ /o_utils list
LSB
● LSB (Linux Stanard Base) was
made to reduce the cost of
support for Linux. Idea is
that it make different Linux
distributions more „unified”.
● ISO/IEC 23360-2 LSB 3.1↔
●
URL: www.linuxbase.org
(redirects to
linuxfoundation.org)
LSB
LSB
FHS
●
Filesystem Hierarchy Standard.
● The most sensible standard in
the Linux world.
●
Part of LSB.
● Must be adopted in the very
beginning.
LTP
● Linux Test Project is most
robust tests suites for Linux
Kernel.
● Run by multiple companies –
IBM, SUSE, Fujitsu, Oracle...
● Few thousands of tests,
syscalls, POSIX compatibility,
Regression tests with CVE.
● http://linux-test-
project.github.io/
[you@host summary]$ ./run.sh
[you@host questions]$ $?
Ad

More Related Content

What's hot (20)

LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
dotCloud
 
About docker in GDG Seoul
About docker in GDG SeoulAbout docker in GDG Seoul
About docker in GDG Seoul
Jude Kim
 
Kernel Recipes 2015: How to choose a kernel to ship with a product
Kernel Recipes 2015: How to choose a kernel to ship with a productKernel Recipes 2015: How to choose a kernel to ship with a product
Kernel Recipes 2015: How to choose a kernel to ship with a product
Anne Nicolas
 
Tuning systemd for embedded
Tuning systemd for embeddedTuning systemd for embedded
Tuning systemd for embedded
Alison Chaiken
 
Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302
Boden Russell
 
Docker_AGH_v0.1.3
Docker_AGH_v0.1.3Docker_AGH_v0.1.3
Docker_AGH_v0.1.3
Witold 'Ficio' Kopel
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
Alison Chaiken
 
Introduction to systemd
Introduction to systemdIntroduction to systemd
Introduction to systemd
Yusaku OGAWA
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...
Jérôme Petazzoni
 
Locally run a FIWARE Lab Instance In another Hypervisors
Locally run a FIWARE Lab Instance In another HypervisorsLocally run a FIWARE Lab Instance In another Hypervisors
Locally run a FIWARE Lab Instance In another Hypervisors
José Ignacio Carretero Guarde
 
Docker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme PetazzoniDocker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme Petazzoni
Docker, Inc.
 
Effective service and resource management with systemd
Effective service and resource management with systemdEffective service and resource management with systemd
Effective service and resource management with systemd
David Timothy Strauss
 
Introduction to containers
Introduction to containersIntroduction to containers
Introduction to containers
Nitish Jadia
 
Device drivers Introduction
Device drivers IntroductionDevice drivers Introduction
Device drivers Introduction
vijay selva
 
Your first dive into systemd!
Your first dive into systemd!Your first dive into systemd!
Your first dive into systemd!
Etsuji Nakai
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
Imesh Gunaratne
 
Device Drivers in Linux
Device Drivers in LinuxDevice Drivers in Linux
Device Drivers in Linux
Shreyas MM
 
Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS Linux
WO Community
 
U-Boot - An universal bootloader
U-Boot - An universal bootloader U-Boot - An universal bootloader
U-Boot - An universal bootloader
Emertxe Information Technologies Pvt Ltd
 
IRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the PreemptibleIRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the Preemptible
Alison Chaiken
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
dotCloud
 
About docker in GDG Seoul
About docker in GDG SeoulAbout docker in GDG Seoul
About docker in GDG Seoul
Jude Kim
 
Kernel Recipes 2015: How to choose a kernel to ship with a product
Kernel Recipes 2015: How to choose a kernel to ship with a productKernel Recipes 2015: How to choose a kernel to ship with a product
Kernel Recipes 2015: How to choose a kernel to ship with a product
Anne Nicolas
 
Tuning systemd for embedded
Tuning systemd for embeddedTuning systemd for embedded
Tuning systemd for embedded
Alison Chaiken
 
Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302
Boden Russell
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
Alison Chaiken
 
Introduction to systemd
Introduction to systemdIntroduction to systemd
Introduction to systemd
Yusaku OGAWA
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...
Jérôme Petazzoni
 
Locally run a FIWARE Lab Instance In another Hypervisors
Locally run a FIWARE Lab Instance In another HypervisorsLocally run a FIWARE Lab Instance In another Hypervisors
Locally run a FIWARE Lab Instance In another Hypervisors
José Ignacio Carretero Guarde
 
Docker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme PetazzoniDocker storage drivers by Jérôme Petazzoni
Docker storage drivers by Jérôme Petazzoni
Docker, Inc.
 
Effective service and resource management with systemd
Effective service and resource management with systemdEffective service and resource management with systemd
Effective service and resource management with systemd
David Timothy Strauss
 
Introduction to containers
Introduction to containersIntroduction to containers
Introduction to containers
Nitish Jadia
 
Device drivers Introduction
Device drivers IntroductionDevice drivers Introduction
Device drivers Introduction
vijay selva
 
Your first dive into systemd!
Your first dive into systemd!Your first dive into systemd!
Your first dive into systemd!
Etsuji Nakai
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
Imesh Gunaratne
 
Device Drivers in Linux
Device Drivers in LinuxDevice Drivers in Linux
Device Drivers in Linux
Shreyas MM
 
Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS Linux
WO Community
 
IRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the PreemptibleIRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the Preemptible
Alison Chaiken
 

Similar to Linux Distribution Automated Testing (20)

Wrangling 3rd Party Installers from Puppet
Wrangling 3rd Party Installers from PuppetWrangling 3rd Party Installers from Puppet
Wrangling 3rd Party Installers from Puppet
Puppet
 
Brief introduction to kselftest
Brief introduction to kselftestBrief introduction to kselftest
Brief introduction to kselftest
SeongJae Park
 
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph GaluschkaOpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebula Project
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
NETWAYS
 
The Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldThe Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote World
DevOps.com
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
Kris Buytaert
 
Suse Studio: "How to create a live openSUSE image with OpenFOAM® and CFD tools"
Suse Studio: "How to create a live openSUSE image with  OpenFOAM® and CFD tools"Suse Studio: "How to create a live openSUSE image with  OpenFOAM® and CFD tools"
Suse Studio: "How to create a live openSUSE image with OpenFOAM® and CFD tools"
Baltasar Ortega
 
Maven and j unit introduction
Maven and j unit introductionMaven and j unit introduction
Maven and j unit introduction
Sergii Fesenko
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
GR8Conf
 
An Introduction To Linux
An Introduction To LinuxAn Introduction To Linux
An Introduction To Linux
Ishan A B Ambanwela
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
Jérôme Petazzoni
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
TheFamily
 
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet
 
Releasing a Distribution in the Age of DevOps.
Releasing a Distribution in the Age of DevOps. Releasing a Distribution in the Age of DevOps.
Releasing a Distribution in the Age of DevOps.
LinuxCon ContainerCon CloudOpen China
 
Malware analysis
Malware analysisMalware analysis
Malware analysis
xabean
 
LISA15: systemd, the Next-Generation Linux System Manager
LISA15: systemd, the Next-Generation Linux System Manager LISA15: systemd, the Next-Generation Linux System Manager
LISA15: systemd, the Next-Generation Linux System Manager
Alison Chaiken
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
Miguel Zuniga
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and Security
Michael Irwin
 
The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012
Philip Polstra
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
Cédric Delgehier
 
Wrangling 3rd Party Installers from Puppet
Wrangling 3rd Party Installers from PuppetWrangling 3rd Party Installers from Puppet
Wrangling 3rd Party Installers from Puppet
Puppet
 
Brief introduction to kselftest
Brief introduction to kselftestBrief introduction to kselftest
Brief introduction to kselftest
SeongJae Park
 
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph GaluschkaOpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebulaConf 2014 - CentOS, QA and OpenNebula - Christoph Galuschka
OpenNebula Project
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
NETWAYS
 
The Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldThe Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote World
DevOps.com
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
Kris Buytaert
 
Suse Studio: "How to create a live openSUSE image with OpenFOAM® and CFD tools"
Suse Studio: "How to create a live openSUSE image with  OpenFOAM® and CFD tools"Suse Studio: "How to create a live openSUSE image with  OpenFOAM® and CFD tools"
Suse Studio: "How to create a live openSUSE image with OpenFOAM® and CFD tools"
Baltasar Ortega
 
Maven and j unit introduction
Maven and j unit introductionMaven and j unit introduction
Maven and j unit introduction
Sergii Fesenko
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
GR8Conf
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
Jérôme Petazzoni
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
TheFamily
 
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet
 
Malware analysis
Malware analysisMalware analysis
Malware analysis
xabean
 
LISA15: systemd, the Next-Generation Linux System Manager
LISA15: systemd, the Next-Generation Linux System Manager LISA15: systemd, the Next-Generation Linux System Manager
LISA15: systemd, the Next-Generation Linux System Manager
Alison Chaiken
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
Miguel Zuniga
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and Security
Michael Irwin
 
The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012
Philip Polstra
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
Cédric Delgehier
 
Ad

Recently uploaded (20)

Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Ad

Linux Distribution Automated Testing

  • 3. [you@host creator]$ ./configure [you@host creator]$ make [you@host creator]$ make install
  • 4. Divide && Conquer ● Making the whole operating system at once is suicide mission. ● Split the Linux distribution into smaller parts, that can be quite easily produced, replaced and tested. ● This smaller parts are in most cases (some people will call them differently, but the idea is the same) are called packages.
  • 5. The Basics Glossary ● Linux – Monolithic Unix-like computer operating system **KERNEL**. ● Linux Distribution (Distro) – GNU/Linux operating system. ● Upstream – original author/s and/or maintainer/s. May refer to the project or institution (ex. Apache).
  • 6. The Basics Glossary ● Repository – Set of Packages with metadata. ● System Image – File/files that contains “frozen” version of system – e.g. Installation ISO. ● Cloud Image – System image that is provided in choosen cloud solution.
  • 7. [you@host ]$ pre_check Please answer following:
  • 8. 1 ● Which software should we pack? ● Sample: SSL/TLS – Google Boring SSL, OpenSSL or BSD LibreSSL? ● A lot of software depends on this libraries, and they won't provide compatible API/ABI.
  • 9. 2 ● Second fundamental problem is software (package) versioning. ● LTS, ROLLING, HyBriD.
  • 10. 3
  • 11. 4 ● How software will be packed? ● Source? ● Ports? ● Binary?
  • 12. [you@host ]$ clone packages
  • 13. Man Package +------------+ | Upstream | +-----> | | +-----+------+ | | | +-----v------+ +-----+ Packager | +-----+------+ | +-----v------+ | Package | +-----+------+ | +-----v------+ | Distro | +------------+
  • 14. Man Packages ● The packager needs to monitor state of packages. ● The package is no self- sufficient (dependencies). ● Sometimes the build environment is much different than runtime. ● Tests and 0-days
  • 15. Apropos Packages ● Dependency HELL! ● Lots of metainfos: Provides Requires Build Requires
  • 17. The Repo ● After making packages, we can move to the next steps: ● Making repository ● Making groups (skippable). ● Making environments (skippable). ● After making packages, we can move to the next steps: ● Making repository ● Making groups (skippable). ● Making environments (skippable).
  • 18. The Repo ● Packages ID, Name, Version, Release, etc. ● Filelist provided by each package. ● Checksums (e.g. sha256, sha512) ● Changelogs. ● PGP/GPG keys used to sign packages. ● Groups and environments.
  • 19. The Group ● Logically linked packages. ● Sample groups: core FTP Server HTTP Server Ruby Development Python 3.6
  • 20. The Environment ● Use cases of our distro. ● Group of groups. ● Sample environments: Developer Workstation Gnome3 Desktop KDE Plasma Desktop
  • 22. Release Images ● Holy Installation ISO ● Virtualization Images ● Cloud Images ● Containers ● Automatic installation ●
  • 23. Release Updates ● Time Based ● Point Based ● Automated way ● Security packages can disturbed the process.
  • 26. Community Tested ● Tests Days. ● Testing repositories. ● Beta testing of whole releases. ● No any meaningful tests/tests sets on VCS. ● No CI/CD publicly available solutions.
  • 27. Community Tested ● The current state might be discouraging. ● Testing Linux distribution means testing thousand of packages.
  • 29. Challenges Of Package Testing ● Package testing must be built in build process.
  • 30. CoPT Attitude Making binaries for Linux desktop applications is a major f*****g pain in the a**. You don’t make binaries for Linux, you make binaries for Fedora 19, Fedora 20, maybe even RHEL5 from 10 years ago. You make binaries for Debian Stable…well no, you don't make binaries for Debian Stable because Debian Stable has libraries that are so old that anything built in the last century doesn’t work – Linus Torvalds
  • 32. CoPT Tests??? ● Some project has next to not existent tests sets. ● This is a common problem with free/libre software. ● The pattern is changing :).
  • 33. CoPT Tests!!! ● The reverse of the previous one. ● Too many way to test software! ● Linux Kernel is great example.
  • 34. CoPT Less; More ● Test patches introduced by distribution. ● Test backported features, that test cannot be backported. ● Package builders support for tests.
  • 35. ● These tests are the easiest to automate. ● Check the chosen attributes: PGP/GPG Checksums License and description Packager, Vendor, Provider Build Host Sources URL. Test On Metadata
  • 36. ● Package builders (the programs not the physical/virtual machines) have minimal support for testing. ● No snapshot, tests, revert mechanism. ● Build != Runtime Environment. Test During Package Build
  • 37. ● Each package need different means to be tested. Test During Package Build
  • 38. ● Each package need different means to test. ● Read: How to runtests. ● Build != Runtime Environment. Test During Package Build
  • 39. Challenges Of Package Testing ● Package testing must be built in build process.
  • 41. ● Repositry is the set of packages with metadata. ● Test CDN. ● Tests metadata. Test Repository Metadata
  • 42. ● There are multiple operations that can be achived with working repository: Update, Downgrade, Install, Group Install, Env Install, Remove. ● Randomly selected, chained ● Test system consitency; services (with default configuration). Test Repository $RANDOM
  • 43. ● We can make graph (V=packages, E=dependency). ● Check for dependencies. ● Search isolated verticles. ● Extremly useful for updates testing – neighbourhood. Test Repository Graph
  • 44. ● Repoclosure – check if all dependencies in repository can be resolved. ● Make impact score. How many packages are dependent, calculated with nested neighbourhood. Test Repository Graph
  • 46. ● There are automation platform, Puppet, Salt, Ansible. ● Puppet -> Puppet Forge, Salt -> Salt Stack Formulas, Ansible -> Ansible Galaxy ● Ready to use then test use cases. How To Obtain Use Cases
  • 47. ● LAMP (Linux; Apache; MySQL; PHP) ● NFS ● Samba ● Web server ● HA Sample Use Cases
  • 48. ● This is good idea to have core test suite. ● Minimal acceptance tests that can be always run. ● Mix of different tests, with different test levels. The core test suite
  • 50. ● Each distribution finally need at least one image that allows to install the system. ● In most cases it’s the first ISO is made on „donor” computer. ● Since then most distributions can be self-hosted. ● Installator that supports unattended/automatic deployment FTW! The Holy One First ISO
  • 51. ● Installation ISO must go through multiple tests: ● Install selected groups (about 20 on single ISO). ● Different FS. ● Different HW, bare metal or virtualized. The Holy One First ISO
  • 52. ● Each image should pass the core test suite. ● The documentation of the solution is beneficial. ● Sometimes we have to use third party software and go their tests. Tests On Different Images
  • 53. ● Allows testing whole distribution lifecycle. ● Uses virtual machines to make reproducible tests. ● Sponsored by SUSE. ● Tests with support for keyboard, mouse input, gather information from the serial console, getting images from the screen and much more. OpenQA open.qa
  • 54. OpenQA Like Selenium ● For Linux Distros. ● With Perl :(.
  • 56. LSB ● LSB (Linux Stanard Base) was made to reduce the cost of support for Linux. Idea is that it make different Linux distributions more „unified”. ● ISO/IEC 23360-2 LSB 3.1↔ ● URL: www.linuxbase.org (redirects to linuxfoundation.org)
  • 57. LSB
  • 58. LSB
  • 59. FHS ● Filesystem Hierarchy Standard. ● The most sensible standard in the Linux world. ● Part of LSB. ● Must be adopted in the very beginning.
  • 60. LTP ● Linux Test Project is most robust tests suites for Linux Kernel. ● Run by multiple companies – IBM, SUSE, Fujitsu, Oracle... ● Few thousands of tests, syscalls, POSIX compatibility, Regression tests with CVE. ● http://linux-test- project.github.io/