OpenServer 5.05 test plan
Squid Proxy Server 2.3.STABLE2
(squid)
Revision: 15.1
Author: Craig Kaes
Revision Date: 1/11/2000
Description
The tests described in this test plan ensure that
the OpenServer 5.05 packaging of the Squid Proxy Server 2.3.STABLE2 product
is correct. The plan contains tests to ensure that the package can be installed
on OpenServer 5.05 using the standard installation tools. It also checks
that the default configuration applied to the package by the packaging
is correct. Where SCO has added extra programs to the final package,
these are tested individually.
Objective
The objective of the tests is to ensure that the
OpenServer 5.04 packaging of this product meets its marketing requirements.
Tests are designed for maximum coverage of the packaged programs, and of
the packaging itself.
Approach
The tests described in this document must be done
manually, since no facility has been developed for automated testing of
the Squid Proxy Server 2.3.STABLE2. For all tests, package installation
is performed with custom(ADM) and package removal with custom(ADM).
Unless otherwise indicated, tests use standard layered installs. Tests
should be undertaken on a system with a browser (nsnavAu) installed.
Sanity Tests
Many tests require performing "sanity tests; this section defines what
is meant. After installation, perform the following steps:
-
Verify that you can load www.sco.com from a browser on your test machine
without a proxy server. This should be the same machine on
which you've installed the squid package.
-
Configure same browser on your test machine to use localhost:8080 as a
proxy server for http and ftp. Lynx is much easier to set up than
Communicator, but this setup must only be done once for Communicator so
may be worth the effort.
-
Lynx:
-
Define and export the environment variable http_proxy=http://localhost:8080/
-
Define and export the environment variable ftp_proxy=http://localhost:8080/
-
Netscape Communicator
-
Choose Edit/Preferences from the drop down menu. A dialog box will
appear.
-
Click on the triangle next to "Advanced" in the left pane of the dialog
box. A list of items will appear below "Advanced".
-
Choose "Proxies" from this list.
-
Click on the radio button next to "Manual proxy configuration" and click
the view button. Another dialog box will appear.
-
Enter localhost for FTP Proxy and 8080 for its port.
-
Enter localhost for HTTP Proxy and 8080 for its port.
-
Select OK to save changes.
-
Back to main preferences dialog, choose "cache" on left pane, below Advanced.
-
Set both memory cache and disk cache to 0.
-
Click both "Clear Memory Cache" and "Clear Disk Cache".
-
Close and reopen Communicator out of paranoia that it didn't really clear
the memory cache.
-
Run "/etc/squid start" to start the proxy server.
-
You should see a message stating "UX:squid: INFO: Starting squid ... done."
-
Run "tail -f /usr/internet/squid/logs/access.log".
-
For each of the next steps requesting files, you should see another line
added to the access log related to that document. If documents load
correctly but the logfile does not grow, you have not correctly configured
your browser to use the proxy server. Repeat that step.
-
Request URL http://www.sco.com in your browser
-
Document should appear in browser.
-
/usr/internet/squid/logs/access.log should have a line in it related to
http://www.sco.com.
-
Follow several links, ensuring that the access log continues to grow and
the documents continue to load correctly.
-
Request URL ftp://ftp.sco.com/skunkware/uw7/Packages/
-
Directory listing should appear in browser.
-
If in Communicator, there should be download/view buttons to the right
of the filenames. Squid puts these there -- neat!
-
Select a file for download. It should download and the access log
should record it.
Pass or fail
Pass: Squid starts correctly, all requested documents/files
download to browser, access log records all requests.
Fail: Squid fails to start, or documents don't load through
squid but do load without a proxy server.
Test case: squid.1
Test case name: squid.install.variants
Description: Install the product, remove
the product.
Steps:
-
Install squid on a UnixWare 7 system.
-
Run basic sanity tests on squid
-
Remove squid, using only "custom -r SCO:Squid"
-
Verify that /usr/internet/squid/etc/squid.conf and
/usr/internet/squid/cache/swap.state are still present.
Pass or fail
Pass: squid installs and passes sanity
tests; on uninstall, squid.conf and swap.state are left behind.
Fail: installation fails, sanity tests
fail, swap.state removed, or squid.conf removed.
Test case: squid.2
Test case name: squid.noclobber
Description: Install squid after a previous installation has
been removed.
Steps:
-
Run test squid.1
-
Note the time stamp of /usr/internet/squid/cache/swap.state after uninstallation.
-
Install squid on same system.
-
Verify old /usr/internet/squid/etc/squid.conf has been backed up to /usr/internet/squid/etc/squid._bakN,
where N is some number.
-
Verify that time stamp on swap.state is the same as it was before installation.
-
Perform sanity tests.
Pass or fail
Pass: old squid.conf backed up, swap.state not overwritten,
and passes sanity tests.
Fail: old squid.conf not backed up, swap.state overwritten,
or fails sanity tests.
Test case: squid.3
Test case name: squid.scripts
Description: Exercise the /etc/squid script.
Steps:
-
Install squid on a clean system.
-
Ensure that the squid server is not started by installation
-
Reboot the system
-
Ensure that the squid server is not started on reboot
-
Invoke /etc/squid query
-
Check that this reports not enabled, and not started
-
Invoke /etc/squid start, /etc/squid query
-
Check that the squid server is started, and 'query'
reports this
-
Invoke /etc/squid stop, /etc/squid query
-
Check that the squid server is stopped, and 'query'
reports this
-
Invoke /etc/squid start, /etc/squid query
-
Check that the squid server is started, and 'query'
reports this
-
Invoke /etc/squid restart
-
Check that the squid server is restarted cleanly
-
Invoke /etc/squid restart
-
Check that the squid server is restarted cleanly
-
Stop the squid server
-
Invoke /etc/squid enable, /etc/squid
query
-
Ensure that the squid server is started, an entry
added to /etc/rc2.d, and that 'query' reports this
-
Reboot the system
-
Ensure that this time the squid server is started
on boot
-
Invoke /etc/squid disable, /etc/squid
query
-
Ensure that the squid server is stopped, the entry
in /etc/rc2.d is removed, and that 'query' reports this
-
Reboot the system
-
Ensure that no squid server is started on reboot
-
Invoke /etc/squid start, /etc/squid
start
-
Ensure that the second 'start' indicates that the
server is already running
-
Invoke /etc/squid stop, /etc/squid
stop
-
Ensure that the second 'stop' indicates that the
server is not running
-
Invoke /etc/squid enable, /etc/squid
enable
-
Ensure that the second 'enable' indicates that the
server is already enabled and running
-
Invoke /etc/squid disable, /etc/squid
disable
-
Ensure that the second 'disable' indicates that the
server is already disabled and stopped
-
Stop squid server, Invoke /etc/squid rotate.
-
Ensure that the squid server starts, rotates its
logs, and stops.
-
Start squid server, Invoke /etc/squid rotate.
-
Ensure that the squid server rotates its logs and
remains running.
Pass or fail
Pass: squid shell script correctly starts,
stops, restarts, enables, and disables the Proxy Server as expected; query
shows the correct state of the server
Fail: script fails or gives an error message,
or does not behave as required
Test case: squid.4
Test case name: squid.remove
Description: Remove the product.
Steps:
-
Remove squid from the system.
-
Ensure that the squid server is automatically disabled and stopped if enabled
at the time of removal.
-
It is expected that squid leave the directory /usr/internet/squid/cache
and all its subdirectories behind on uninstall.
-
It is expected that squid leave the files matching /usr/internet/squid/etc/squid.conf*
behind on uninstall.
Pass or fail
Pass: all elements of the package removed from the system except
those explicitly mentioned above.
Fail: any package elements remain besides those explicitly mentioned
above.
Test case: squid.5
Test case name: squid.lang
Description: Install squid, verify that
error messages are displayed in correct language.
Steps:
-
Configure browser as for sanity tests.
-
Set LANG=es_ES.ISO8859-1 and export it.
-
Install squid.
-
Request a document from a nonexistent host.
(For example http://www.non-exist.goob/)
-
Verify that the error response that is sent back
is in Spanish.
Pass or fail
Pass: error message displayed is in Spanish.
Fail: error message not displayed or displayed
in any language other than Spanish.
Test case: squid.6
Test case name: squid.lang.exhaustive
Description: Run testLocale.sh, a shell script that verifies
squid installs correctly for all languages.
Steps:
-
Place testLocale.sh, lang2squid.map, and squid.pkg in the same directory.
-
As root, run ./testLocale.sh
Notes:
-
This test takes 3 hours to complete on a K6300 with scsi disks.
-
After it has installed and removed squid over 150 times, it will display
a line stating, "Locale tests passed." or "Locale tests *FAILED*.
See file RESULTS for details."
Pass or fail
Pass: Message "Locale tests passed." displayed at end of
test.
Fail: Message "Locale tests *FAILED*. See file RESULTS
for details." displayed at end of test.