Giter Club home page Giter Club logo

autotests's Introduction

Armbian logo
auto testing

TL;DR

Script can be installed on any Debian based Linux device on your network. Adapt the configuration-file to your requirements, start the test procedure and wait until its done. Check the logs/ for errors and summary in /reports

Privacy concerns

It runs locally in your network, no data is sent anywhere. Icons come from the internet.

Getting started

Clone, edit userconfig/configuration.sh and run the script. Script will scan your local network (if SUBNET is defined) otherwise it will cycle on IPs you have defined in HOSTS variable.

It will create logins based on the configuration file and run different tests/ to see if the board is working properly. You can start with predefined credentials or use your own.

All you need to do is configure the configuration file, hook up the power and network cable and you are ready for running the test.

That's it.

Prerequisites

Download the latest armbian image for your board(s). We recommend to use .torrent because this does the file integrity check for you automatically. Write the data to the SDcard

Put the SDcard into your device, power it up and let it sit for 1-2 minutes, to do the standard initial setup.

Prepare your system

  1. Go to a folder where you want to store it. The following command will create a folder called 'autotests'. Clone the sources from Github and open the folder autotests:
apt install git
git clone https://github.com/armbian/autotests
cd autotests
./go.sh
  1. Edit userconfig/configuration.sh
    • change number of passes (optional)
    • change stress time in seconds (optional)

What is your device(s) IP-Address or do you have a dedicated subnet for your devices. To find the device, check your router or use this tool, to find your boards IP-Address(es). - set IP-Address (HOSTS) or Subnet (Examle: 192.168.0.1/24) - set WLAN_SSID and password (2,4 and/or 5,0GHz) - set BLUEDEV MAC-Address of a Blueooth device (Android phone for example)

How to find the Bluetooth MAC-Address on your mobile or Linux device with BT? Put your phone's BT to discoverable mode and run:

hcitool scan

on a Linux computer that has a BT-Dongle. On an Android device you find the MAC-Address in the phones settings/about the phone/Status.

  1. Run ๐Ÿ‘ : The script will display which board gets tested
./go.sh
  1. Once finished, go to /autotests/logs and check latest report.`

What this tool does?

It Connects to the host(s) or all Armbian hosts in your subnet and runs the tests found in folder tests in alphabetical order.

Example report:

Board
/
Cycle
Version / distribution
Kernel / variant

Lan

2.4Ghz

5Ghz

memory

storage

BT

Stress 6s

DVFS (Mhz)
Iperf send/receive (MBits/s) IO read/write (MBits/s)
ย 1ย  Cubietruck ###.###.###.200
1/2
19:16:37
20.02.1 (bionic)
Linux 5.4.26-sunxi stable
sun7i-dwmac 550 - 728
brcmfmac
358 - 342388 - 8480 - 960
2/2
19:21:22
20.02.1 (bionic)
Linux 5.4.26-sunxi stable
sun7i-dwmac 521 - 744
brcmfmac
357 - 340386 - 11480 - 960
ย 2ย  Tinkerboard ###.###.###.204
1/2
19:25:24
20.02.1 (bionic)
Linux 5.4.20-rockchip stable
rk_gmac-dwmac 941 - 908
rtl8723bs 24
mt7601u 99
rt2800usb 109
696 - 742698 - 70600 - 1800
2/2
19:29:41
20.02.1 (bionic)
Linux 5.4.20-rockchip stable
rk_gmac-dwmac 941 - 906
rtl8723bs 3
mt7601u 105
rt2800usb 113
692 - 740731 - 68600 - 1800

Which tests are executed?

test name function
0000-read-board-data.bash Read board OS information
0001-nigtly-stable-switch.bash Switching between nightly and stable, odd/even
0002-update-and-upgrade.bash Upgrade all packages
0008-connect-wireless-devices-on-2.4Ghz.bash Connects wireless devices on 2.4G band
0013-iperf-on-all-wired-interfaces.bash Check speed on all wired devices
0014-iperf-on-all-wireless-interfaces.bash Check speed on all wireless devices
0015-connect-wireless-devices-on-5.0Ghz.bash Connects wireless devices on 5G band
0017-iperf-on-all-wireless-interfaces.bash Check speed on all wireless devices
0018-io-tests-memory.bash Determine maximum memory random write speed
0019-io-tests-drive.bash Determine maximum SD/eMMC random write speed
0111-bluetoth.bash Ping Bluetooth device to check basic BT functionality
0115-strong-stressing.bash Running heavy stressing for n seconds
0116-dvfs.bash Get min and max CPU temperature to see if DVFS is operational
0119-7-zip-benchmark.bash.disabled Run 7Zip benchmark
9999-reboot.bash Reboot the board

To do's:

  • parallel processing
  • implement official SBC-bench with access to full logs
  • improve errors catching
  • implement iperf queue to prevent colisions on network testing
  • create JSON data export for single board and together
  • common data collecting
  • support custom test board https://forum.armbian.com/topic/10841-the-testing-thread

Semantic description of image

autotests's People

Contributors

igorpecovnik avatar lanefu avatar martinl avatar tido- avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

autotests's Issues

Privacy concerns re: automated data collection

I know this is still very WIP, but I wanted to lodge a concern, while I was thinking about it.

I hope that any automated data collection will be opt-in, when the time comes around to implement that functionality.

I realize how important this functionality will be to the overall stability of Armbian, but I would like to see us do "the Right Thing" here (when the time comes).

Perhaps a good compromise would be to ask the user upon installation? Perhaps with some message about how this contributes to stability, a link to this repository, or whatever...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.