OpenArbor Test Machine Setup
Setup
The OpenArbor automated test system is a client-server based system. The client, the "DDS Manager GUI" installed on some machine, communicates with the five available test machines which all have a server running on them.
Test Machines
There are currently several machines with dummy plugs installed available for testing. In addition, you may need to turn off notifications from Windows that ask if you want to allow an application to make updates to the machine.
| Machine | OS |
|---|---|
| OATEST | Windows 11 (64bit) |
| OATESTLAP | Windows 10 (64bit) |
| TESTW10E1 | Windows 10 (64bit) |
| TESTW10E2 | Windows 10 (64bit) |
| TESTLINUX01 | Linux VM |
| TESTLINUX02 | Linux VM |
Antivirus Exceptions
Exceptions should be added to the symantec antivirus to allow an exception for the oatestharness directories and any OpenArbor develpment directories.
- Open the Trend Micro Security Agent Dialog
- Click the Settings button (gear icon)
- Select Real-time Scan
- Expand Exclusions
- Add the following directories:
- C:\temp
- C:\oaTestHarness
- C:\ddci_eclipse
- C:\ddci_eclipse_test_harness_dev
Setup Instructions for the Test Monitoring Machine (a.k.a. Client)
The OpenArbor Test Harness GUI is the client program for the dds manager system. It is an Eclipse RCP project that has been stored in SVN.
Windows
- Install a desk maintainer environment.
- Update the cygwin terminal to be "run as adminstrator"
- Start Menu | right click on Cygwin Terminal | Open File Location, from the explorer window, right click Cygwin Terminal | Properties | Advanced | check "Run As Administrator"
- Disable screen saver - this interrupts the test system.
- Make directory C:\ddci_eclipse_test_harness_dev
- cd to the above directory and use svn to checkout a fresh copy of: https://deos.ddci.com/svn/DDCI/products/openarbor/utils/dds-manager/dds-manager-e4/
- svn co --username=<username> --password=<password> --no-auth-cache https://deos.ddci.com/svn/DDCI/products/openarbor/utils/dds-manager/dds-manager-e4/ dds-manager
- If you just want to start using the client, run the oaTestHarness.sh script. It accepts a few arguments.
- -n will skip running make kindaclean.
- -w accepts an absolute path to a workspace. By default it will go to Root:/oaTestHarness/workspace.
- -d accepts an absolute path to a desk maintainer root. By default the script uses the desk environment it is launched in.
- ./oaTestHarness.sh [-n]
- If you see an maven error about not being able to get stuff in offline mode try:
- make MAVEN_OFFLINE=""
- then run the oatestharness script again.
- Ensure the directory C:\temp exists before attempting to install a dds.
- The OpenArbor Test Harness GUI should now be displayed.
- right-click localhost and "Add Machine" for each test machine you want to monitor
Docker
- Get a Docker Capable Workstation
- Define Environment Variables
- Checkout the test harness source code
- Setup Mount Points
- Build Test Harness in a Baseline Docker Image
- Launching Test Harness in a Baseline Docker Image
Connecting to a Test Machine
Windows
Connecting to a Test Machine via VNC Viewer As part of the automation effort, connecting via VNC is now the preferred method of administering the test machines. Dummy plugs have been installed on all five machines in order to allow the tests to run without the need for anyone to be connected. You may now start your test suite, close the window, and go about your day. While RDC still works, it can interfere with the VNC setup, so if you absolutely must use RDC, please ensure that no tests are currently running on the machine.
VNC is very easy to set up and use.
- Download TightVNC from http://tightvnc.com/download.php
- When installing, if you don't want a server on your machine, choose custom install and only install the viewer
- Start the TightVNC viewer
- Enter the name of the machine you wish to connect to
- The password is still scteorste1
- You may need to log into the local machine as well
- Username is scoretest for all test machines
VNC has some additional benefits and features as well. In addition to headless testing, multiple people can connect to the same machine at once, allowing easy screen sharing of any of our testing machines. TightVNC also has a viewer-only mode, should you want to observe tests running without interfering with them due to errant mouse input.
If you really need it, you can also use Remote Desktop Connection (RDC) to connect to the reserved test machine.
- Username: scoretest
- Password: scteorste1
Logging in as user "scoretest" is a strategy to allow anyone on the testing team to login and administer the test run. Most of the time, the test runs span several days and problems need to be addressed by more than one person.
Docker
RDC Settings
Connecting to a Test Machine viaRemote Desktop Connection (RDC)
- Username: scoretest
- Password: scteorste1
Logging in as user "scoretest" is a strategy to allow anyone on the testing team to login and administer the test run. Most of the time, the test runs span several days and problems need to be addressed by more than one person.
Setup for the Test Machine (a.k.a. Server)
Windows
- Make sure that tightvnc is installed, along with the DFMirage mirror driver. If the tightvnc installer asks you for passwords, use the scoretest password for all of them.
- Use TightVNC (setting up vnc) to log onto a test machine.
- Make sure there is a desk maintainer environment installed to C:\cygwin.
- Setup appropriate shortcuts for desk environment. For example, if you have installed the Cygwin2022 desk environment, create the following shortcuts:
- Create desktop shortcut for C:\cygwin2022-kismet\bin\mintty.exe named 'Cygwin2022 Terminal'.
- Change shortcut's Target to: C:\cygwin2022-kismet\bin\mintty.exe -i /Cygwin-Terminal.ico -
- Change Shortcut's Start in to: C:\cygwin2022-kismet\bin
- In 'Advanced', check 'Run as Administrator' box.
- Create desktop shortcut for C:\cygwin2022-kismet\bin\run.exe named '2023-06-R OA Dev Cygwin2022'.
- Change shortcut's Target to: C:\cygwin2022-kismet\bin\run.exe /bin/python /desk/desk-environment.py C:\Eclipse\2023-06-R\eclipse\eclipse.exe
- Change Shortcut's Start in to: C:\Eclipse\2023-06-R\eclipse
- In 'Advanced', check 'Run as Administrator' box.
- If you have installed the Cygwin2022 desk environment, set environment variable: setx DDCI_FLEXNET_TOOLS_LOC C:\ddci_eclipse_test_harness_dev\dds-manager\build\test-harness\64bit\windows\FLEXnet
- If you want to setup all the test machines at once:
- Make sure you have a checkout of https://deos.ddci.com/svn/DDCI/products/openarbor/utils/dds-manager/dds-manager-e4/ to
C:/ddci_eclipse_test_harness_dev/dds-manager-e4. - Run the
updateTestMachines.shscript. If this is a new test machine then you will need to update the script by adding the name of the new machine. This script makes sure all the test machines are running the latest version of the test harness.
- Make sure you have a checkout of https://deos.ddci.com/svn/DDCI/products/openarbor/utils/dds-manager/dds-manager-e4/ to
- If you are only trying to get one machine going:
- If there isn't a checkout in
C:/ddci_eclipse_test_harness_dev/dds-manager-e4, thensvn co https://deos.ddci.com/svn/DDCI/products/openarbor/utils/dds-manager/dds-manager-e4/ /cygdrive/c/ddci_eclipse_test_harness_dev/dds-manager-e4. - Otherwise,
svn up /cygdrive/c/ddci_eclipse_test_harness_dev/dds-manager-e4. - Now,
cd /cygdrive/c/ddci_eclipse_test_harness_dev/dds-manager-e4 && ./oaTestHarness.sh.
- If there isn't a checkout in
Docker
Follow the instructions here to build and launch the OATestHarness(Steps 1-6): OpenArbor_Development_Docker
Debugging an Automated Test
OpenArbor runs in the docker container. The Eclipse development environment must be installed in the docker container in order to debug a test with Eclipse.
- Start the docker container using run-docker
- run-docker --mount=type=bind,source=/mnt,target=/mnt -i --tty --rm dds-docker-sales-deos-jupiter-20221018
- Define DDCI_FLEXNET_TOOLS_LOC environment variable
- export DDCI_FLEXNET_TOOLS_LOC==/home/scoretest/ddci_eclipse_test_harness_dev/dds-manager-e4/build/test-harness/64bit/linux/FLEXnet
- Install the Eclipse development environment
- sudo apt-get install openarbormaintainertools
- Save the updated docker container
- open a separate terminal
- docker container ls
- docker container commit <container name> dds-docker-sales-deos-jupiter-20220524-dev (e.g. container name is something like determined_banzai from the ls of containers)
- Start Eclipse specifying the test harness workspace
- /Eclipse/2020-12-R/eclipse/eclipse
- Workspace: /home/scoretest/ddci_eclipse/workspace_n.n.n
- Setup Eclipse dev env and begin debugging from within the container
- When done, clean up containers and dev images.
Debugging the Test Harness
The test harness runs in the vm. The Eclipse development environment must be installed in the vm in order to debug with Eclipse.
- Define DDCI_FLEXNET_TOOLS_LOC environment variable
- export DDCI_FLEXNET_TOOLS_LOC=/home/scoretest/ddci_eclipse_test_harness_dev/dds-manager-e4/build/test-harness/64bit/linux/FLEXnet
- Install the Eclipse development environment
- sudo apt-get install openarbormaintainertools
- Start Eclipse specifying the test harness workspace
- /Eclipse/2020-12-R/eclipse/eclipse
- Workspace: /home/scoretest/ddci_eclipse_test_harness_dev/dds-manager-e4
- Ensure Window | Preferences | Run/Debug | String Substitution values are correct
- username "scoretest"
- deskRootLocation "/"
- dockerRootLocation "/home/scoretest/docker"
- Ensure Debug Configuration for DDS Test Harness Launch is correct
- Arguments tab, add --dockerRoot ${dockerRootLocation}
- Plugins tab, uncheck 'Validate Plug-ins automatically prior to launching"
Disabling SVN password storage on Test Machines
If authentication settings in the SVN config or servers files are set to save passwords, users may be unable to switch from a logged in account to log into their own, creating a roadblock if a user that is not logged in wants to run a SVN command. In order to prevent this from happening, disable SVN password storage:
Windows
- In cygwin terminal, cd to ~/.subversion
- rm -r auth
- in ~/.subversion/config ([auth] section), set 'password-stores = '. Comment out any existing 'password-stores' entries.
- in ~/.subversion/servers ([global] section), set 'store-passwords = no'. Comment out any existing 'store-passwords' entries.
Docker
- cd to ~/.subversion
- sudo rm -r auth
- in ~/.subversion/config ([auth] section), set 'password-stores = '. Comment out any existing 'password-stores' entries.
- in ~/.subversion/servers ([global] section), set 'store-passwords = no'. Comment out any existing 'store-passwords' entries.
Troubleshooting
CreateProcess error=740, The requested operation requires elevation
I got this message once when the test machine was trying to execute setupDDCI.exe, after pressing the "Install" button on the test harness GUI.
The solution is to do the following on the test machine:
- Start | Control Panel | User Accounts | Change User Account Control Settings | Move the lever to "Never Notify"
- Reboot the test machine
TCP Port 7181 in use error - lmgrd cannot start the license server.
Use netstat to determine what pid using the tcp port
- scoretest@testlinux01:~/ddci_eclipse_test_harness_dev/dds-manager-e4/build/test-harness/64bit/linux/FLEXnet$ netstat -tulpn | grep LISTEN
- (Not all processes could be identified, non-owned process info
- will not be shown, you would have to be root to see it all.)
- tcp 0 0 0.0.0.0:3142 0.0.0.0:* LISTEN -
- tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN -
- tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN -
- tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
- tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
- tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN -
- tcp 0 0 127.0.0.1:43489 0.0.0.0:* LISTEN -
- tcp6 0 0 :::3142 :::* LISTEN -
- tcp6 0 0 :::139 :::* LISTEN -
- tcp6 0 0 :::7181 :::* LISTEN 88938/./lmgrd
- tcp6 0 0 :::16462 :::* LISTEN 2808/java
- tcp6 0 0 :::22 :::* LISTEN -
- tcp6 0 0 ::1:3350 :::* LISTEN -
- tcp6 0 0 ::1:631 :::* LISTEN -
- tcp6 0 0 :::44827 :::* LISTEN 88940/ddciflex
- tcp6 0 0 :::3389 :::* LISTEN -
- tcp6 0 0 :::445 :::* LISTEN -
- scoretest@testlinux01:~/ddci_eclipse_test_harness_dev/dds-manager-e4/build/test-harness/64bit/linux/FLEXnet$ ps -a | grep lmgrd
- 88938 pts/0 00:00:00 lmgrd
Test Machine Failure Log (BSOD, Freeze, etc.)
A log of all known failures of the test machines, recorded with the hopes to find trends that can be fixed going forward.
| Machine | OS | Failure Type | Did any action seem to provoke the failure? | Details |
|---|---|---|---|---|
| OATESTLAP | Windows 11 (64bit) | BSOD | Launcher test run | 20240726:LJ started a launcher test run for qemu-ppc on DDS-tostones3-doeos-jupiter-20240422 after installing latest stable Deos components and unreleased OA 12.1.3 using the cygwin installer 20240727:LJ connecting to OATESTLAP fails from either VncViewer or RDC. |

