XS Community Edition/0.4/Testing

From OLPC
< XS Community Edition‎ | 0.4
Revision as of 17:07, 26 September 2013 by Aschoolf (talk | contribs) (Statistics Collection - Pending Santi/Anish)
Jump to: navigation, search

This IIAB XSCE content does not reflect the opinion of OLPC. These pages were created by members of a volunteer community supporting OLPC and deployments.

XSCE Smoke Test

This set of test cases represents a quick smoke test that a build should pass. Please file bugs at https://sugardextrose.org/projects/xsce/issues

Tests are run against reference hardware first, generally XO-1.75 and XO-4 Touch and Trim-Slice. We ask your help running against more hardware variations serving global implementers' and contributors' needs.

Please see our evolving table of smoke test results.

Installation

Purpose

  1. Verify the installation process works correctly.

Prerequisites

  1. A piece of hardware, or a virtualbox hardware simulation running on a bigger machine that has sufficient disk space (virtual schoolserver instances are used by the XSCE team, but are not really supported, tested, "we'll fix it if it's broken").

Steps

  1. Decide which installation technique you want to test. See INSTALL instructions.
  2. Perform the Installation process, noting any errors, or documentation improvements (please submit)

Results

  1. The install should complete without errors.

Hardware

The XSCE can detect and utilize several types of hardware.

External SD Card

Purpose

  1. Verify the External SD card used for additional storage is functional.

Prerequisites

  1. The SD card must be inserted into XO before the XSCE install process is started, if it is to be recognized, and incorporated in the disk layout.
  2. Before the "xs-setup" command is run, the "prep-storage" command will prepare the SD card for use by the XSCE.

Steps

  1. If the SD card is prepared as in step 2 above, it should be recognized automaatially, and become the place where the /library folder is configured.

Results

  1. The "df -Th" should report a /dev/mmcbk0p1 partition of type "ext4" mounted on /library.

External USB Drive

Purpose

  1. If you are using an external USB hard drive, verify the External USB hard drive used for additional storage is functional.

Prerequisites

  1. External drives require a lot of power to spin up correctly, and be recognized. Some testing has shown that a powered USB hub is often necessary (especially with the XO1.5).
    One Western Digital "my passport" , and no other loads, on a XO1.75, or XO4 seems to work reliably.

Steps

  1. A schoolserver will automatically mount an external hard drive, once it is recognized, at '/mnt/usb{1..9}.

Results

  1. Verify that it is mounted successfully with the command "df -h".

Core Service

Core service should be tested using a School Server and a 'client' XO running 13.1.0.

Apache Web Server (httpd)

Purpose

  1. Verify the web server is functional.

Prerequisites

  1. XO should be connected to XSCE.

Steps

  1. Go to http://schoolserver and http://schoolserver.local.

Results

  1. Both should resolve to the XSCE homepage.

Proxy Caching (squid)

Purpose.

  1. Verify Proxy caching is functional.

Prerequisites

  1. XO should be connected to XSCE.

Steps

  1. On XSCE Check the initial size of the squid cache directory: du -sk /library/cache.
  2. On XO open Browse Activity and surf the internet.
  3. On XSCE Check the squid cache directory size again.

Results

  1. Cache size should increase.

Dynamic Host Configuration (dhcpd)

Purpose

  1. Verify the dynamic host configuration is functional.

Prerequisites

  1. None

Steps

  1. Go to Neighborhood View.
  2. Click on the name of your Access Point.

Results

  1. After a few seconds the connections status will change to "Connected."

Network Address Translation/NAT (iptables)

Purpose

  1. Verify network address translation is functional.

Prerequisites

  1. XO should be connected to XSCE.

Steps

  1. In a browser, go to https://mail.google.com (any site with HTTPS).

Results

  1. Site should open correctly.

Registration (idmgr)

Purpose

  1. Verify XO registration is functional.

Prerequisites

  1. XO should be connected to XSCE.

Steps

  1. Register the XSCE.

Results

  1. Receive a message that registration was successful.
  2. Registration creates a directory named the XO's serial number in /library/users.

XMPP Server (ejabberd)

Purpose

  1. Verify that the XMPP server is functional.

Prerequisites

  1. XO should be registered.

Steps

  1. If you get a message that registration failed, go to the Sugar Control Panel and in Network, clear out the collaboration server field. Upon successful registration, both XOs will appear in Network Neighborhood.
  2. To verify that ejabberd is managing collaboration and not the LAN, issue this in a root terminal:
  3. ejabberdctl connected-users

Results

  1.  ???

XMPP based collaboration (ejabberd)

Purpose

  1. Verify that the XMPP based collaboration is functional.

Prerequisites

  1. 2 client XOs.

Steps

  1. On both XO's click on the same XSCE network
  2. Confirm that both units are on the same network
  3. Open chat with one XO
  4. Share the activity with the neighborhood
  5. Go to the Network view of that XO
  6. Go to the Network view of the second XO
  7. In the network view of the second XO click on the chat activity that the first one just shared
  8. Type a few lines in the chat activity on each XO
  9. Close the chat activity on both XOs
  10. Follow the same steps, but starting with the second XO. (see that it works both ways)

Results

  1. The shared chat activity shows up in the network view of both laptops
  2. Whatever one laptop types in the chat window after both are connected is seen by both laptops
  3. Chat works both ways and on all three networks

Extended Service

OLPC-update (rsync)

Purpose

  1. Verify OLPC-update is functional.

Prerequisites

  1.  ???

Steps

  1.  ???

Results

  1.  ???

http://dev.laptop.org/git/users/martin/xs-rsync/tree/README

OLPC-backup

PLEASE NOTE: ds-backup is broken client side in 13.1.0 due to problem with ping being prevented. Please test against a client running 13.2.0

Purpose

  1. Verify OLPC-back is functional.

Prerequisites

  1. XO should be connected to XSCE.
  2. XO should be registered.

Steps

  1. rm /home/olpc/.sugar/default/ds-backup-done #delete the ds-backup-done if it exists.
  2. /usr/bin/ds-backup.sh nosleep# run backup with the nosleep argument.

Results

  1. On XO /home/olpc/.sugar/default/ds-backup-done should exist
  2. On XSCE each successful backup run creates a new directory under `/library/users/<Serial Number>/datastore`.

Please see http://wiki.laptop.org/go/XS_Blueprints:Datastore_Simple_Backup_and_Restore for more information

Activity Server (uses httpd)

Purpose

  1. Verify http://schoolserver/activities resolves.

Prerequisites

  1.  ???

Steps

  1. Upload an Activity to the school server by using a browser to navigate to http://schoolserver.local/upload_activity.php.
  2. Click on "Choose File"
  3. Use the file chooser to indicate which Activity you would like to upload.
  4. Create a USB stick with the activities you want to install in a folder called xs-activity-server and create the md5sums as specified at http://dev.laptop.org/git/users/martin/xs-activity-server/tree/README

Results

  1. Browse to the root directory of the schoolserver and click on the "Download an Activity" link. You should see the activities you uploaded on the resulting page.

Virtual Private Network (OpenVPN)

Purpose

  1. To permit two machines with internet access to talk to one another, regardless of intervening routers, ISP's, firewalls.
  2. This is based upon the fact that for internet access to work, a connection can always be created from the inside out, and the response can find its way back to the originator of the exchange.

Prerequisites

  1. A schoolserver, and OPTIONALLY another schoolserver or another computer with openvpn loaded on it

Steps

  1. At the schoolserver console, type "xs-vpn test"

Results

  1. After about a minute, the "xs-vpn" script will terminate with the message "vpn tunnel established"

OPTIONALLY

  1. Setup the tunnel for the second machine (if you are using a machine that is not a schoolserver, you may need to copy /etc/openvpn/keys to the appropriate openvpn config location on the second machine)
  2. use the "ifconfig" command to discover the ip address for the "tun" (tunnel) device on each machine. It will be on the 10.8.0.x network)
  3. The two machines should be able to ping one another's ip 10.8.0.x addresses.
  4. You should be able to ssh into the schoolserver with a console command similar to "ssh admin@10.8.0.6 (with the actual address on the remote machine) -- for testing, unless you've changed it, the admin password is "12admin".

EXTREMELY IMPORTANT: OpenVPN on top of XSCE makes a school server LESS SECURE. It provides connectivity, NOT SECURITY.

AT THE MINIMUM, you must change /etc/ssh/sshd_config to say "PasswordAuthentication no". To use ssh for remote access to the schoolserver, yum must use public/private key authentication -- see http://en.wikipedia.org/wiki/Ssh-keygen. You will nee to create your own private encryption key-pair, and install them correctly. Additional information is at http://wiki.laptop.org/go/Setting_Up_an_XSCE_VPN

Tiny Core Linux Customization Stick

Purpose -- refer to documentation at http://wiki.laptop.org/go/Tiny_Core_Linux

  1. Permit deployments to easily add/remove activities from stock builds of XO software, run scripts as superuser (root) on an classroom XO.

Prerequisites

  1. Working Schoolserver
  2. USB stick with at least 50MB of free space by doing the following

Steps

  1. Copy the contents of /usr/share/xs-config/tccustomize/* to the root directory of a USB stick:
    1. Put the USB drive in an available schoolserver USB socket
    2. On the Schoolserver console, or in a ssh shell, navigate to the tccustomize directory -- "cd /usr/share/xs-config/tccustomize".
    3. Copy boot directory and HowTo instructions to USB stick -- "cp -rp * /mnt/usb0".
    4. Make sure the copy is complete -- "sync".
  2. Put this Customization Stick in an unlocked XO, and turn it on

Results

  1. The Tiny Core Linux should load and be visible on the XO screen

Statistics Collection - Pending Santi/Anish

Purpose

  1. Verify Statistics collection is functional.

Prerequisites

  1. Currently, client side testing can only be performed from DX4. Install the DX4 build from http://build.activitycentral.com/DX4/INTL/build10/
  2. For XO-1 clients only: download and yum localinstall http://build.activitycentral.com/repositories/rrdtool-xo1/rrdtool-1.4.7-9dx4xo1.i686.rpm and http://build.activitycentral.com/repositories/rrdtool-xo1/rrdtool-python-1.4.7-9dx4xo1.i686.rpm
  3. Edit /etc/sugar-client.conf from "stats-url = http://stats.sugardextrose.org:8000" to "stats-url = http://schoolserver:8000"
  4. Reboot

Steps

  1. Let the XO client sit for a few minutes, then check /home/olpc/.sugar/default/stats for .rrd files.

Results

  1. Several minutes later, go to the server and check /library/sugar-stats/rrd/ and navigate into the client's directory to check for .rrd files. It should look something like this:
[root@schoolserver] ~ >ls /library/sugar-stats/rrd/c2/c2b66da561d5e6370d7bbe84a3250609773b780c/
activity.org.laptop.Terminal.rrd  journal.rrd  network.rrd  shell.rrd  system.rrd

Pathagar book server - Pending Sameer/Seth

Purpose

  1. Verify book server is functional.

Prerequisites

  1.  ???

Steps

  1. Browse to the root directory of the schoolserver and click on the "Pathagar" link . You should see the Pathagar home page displayed.

Results

  1. The login username is "pathagar" and the password is bookserver spelled backwards "revreskoob".
  2. The current situation is that the interface between pathagar software and Apache does not permit upload of books (we expect to fix this before 0.4 is finally released).

Ejabberd Web Interface ???

This isn't necessary for testing, but is fun to poke around in:

Register the admin user: ejabberdctl register admin schoolserver.local <password>

In a browser, go to http://schoolserver.local:5280/admin

The username is admin@schoolserver.local and the password is whatever you set above.

Using Pidgin to Monitor Ejabberd

When testing the XSCE, it can be helpful to see at a glance which XO clients have successfully connected to the ejabberd server. Pidgin is a cross platform XMPP client you can use to connect to the schoolserver's ejabberd server from any Windows/Linux/Mac computer. Connected XO clients will appear in the Buddy List.

In the Buddy List window, go to Accounts -> Manage Accounts. Click Add.

In the Basic tab under Login Options, enter the following values:

Protocol: XMPP
Username: yourname
Domain: schoolserver.local
Resource: pidgin
Password: yourpassword

Check "Remember password"

In the Advanced tab, enter the following values:

Connection security: Use old-style SSL
Connect port: 5223
Connect server: schoolserver.local

At the very bottom of the "Modify Account" window, check "Create this new account on the server." Click Add, then a registration box will pop up. Click Register, then you should get a pop up box that registration was successful. Click close. In the Accounts box, click the tick box in the "Enabled" column next to your username. If a box pops up for the server certificate, click Accept.

Now in the Buddy List, you should see the XOs that are currently connected to the XSCE's ejabberd server.

Internet-in-a-Box

Purpose

  1. Test the interface between apache web server and the IIAB dataset.

Prerequisites

  1. You need an Internet-in-a-Box hard drive.
  2. As an alternative to 650GB on an external hard drive, there is a quick-start download, for testing purposes at http://downloads.internet-in-a-box.org/IIAB_QuickStart_Sampler_20130809.tgz. (Note: we need to document where to place the Sampler so that it will be found).

Steps -- Verify Internet in Box is functional by doing the following:

  1. On a client XO, open the Browse Activity.
  2. Click on the home page icon.
  3. Click on the "school server"
  4. Click on the "Internet-In-A-Box" link (The link will be colored blue, if the dataset has been found). You should see the IIAB home page displayed.

Results

  1. You should see the IIAB home page which starts off -- Wikipedia, books, maps, videos, ...

PostgresSQL

Moodle