summaryrefslogtreecommitdiff
path: root/qa/interact
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
commit47e6e7c84f008a53061e661f31ae96629bc694ef (patch)
tree648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/interact
downloadpcp-debian.tar.gz
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/interact')
-rw-r--r--qa/interact/GNUmakefile15
-rw-r--r--qa/interact/GNUmakefile.install1
-rw-r--r--qa/interact/chart-control-testcases101
-rw-r--r--qa/interact/chart-create-edit-testcases227
-rw-r--r--qa/interact/chart-scaling-testcases53
-rw-r--r--qa/interact/export-print-testcases57
-rw-r--r--qa/interact/help-system-testcases19
-rw-r--r--qa/interact/query-testcases80
-rw-r--r--qa/interact/record-testcases56
-rw-r--r--qa/interact/search-testcases75
-rw-r--r--qa/interact/settings-testcases103
-rw-r--r--qa/interact/tab-create-edit-testcases70
-rw-r--r--qa/interact/view-create-save-testcases124
13 files changed, 981 insertions, 0 deletions
diff --git a/qa/interact/GNUmakefile b/qa/interact/GNUmakefile
new file mode 100644
index 0000000..ce07d77
--- /dev/null
+++ b/qa/interact/GNUmakefile
@@ -0,0 +1,15 @@
+TOPDIR = ../..
+include $(TOPDIR)/src/include/builddefs
+
+TESTDIR = $(subst pcp,pcp-gui,$(PCP_VAR_DIR))/testsuite/interact
+TESTCASES = $(shell echo *-testcases)
+LSRCFILES = $(TESTCASES) GNUmakefile.install
+
+default setup:
+
+install: $(TESTCASES)
+ $(INSTALL) -m 755 -d $(TESTDIR)
+ $(INSTALL) -m 644 $(TESTCASES) $(TESTDIR)
+ $(INSTALL) -m 644 GNUmakefile.install $(TESTDIR)/GNUmakefile
+
+include $(BUILDRULES)
diff --git a/qa/interact/GNUmakefile.install b/qa/interact/GNUmakefile.install
new file mode 100644
index 0000000..dd1e65d
--- /dev/null
+++ b/qa/interact/GNUmakefile.install
@@ -0,0 +1 @@
+default setup install:
diff --git a/qa/interact/chart-control-testcases b/qa/interact/chart-control-testcases
new file mode 100644
index 0000000..4ce56db
--- /dev/null
+++ b/qa/interact/chart-control-testcases
@@ -0,0 +1,101 @@
+Chart Correctness and Control
+=============================
+
+Live mode
+
+[ ] Run: pmchart -c views/ScaleManual -t 1
+ This should display two charts - the top one with instantaneous
+ sample metrics (sample.double.one and sample.double.ten), lower
+ chart with one counter metric (sample.byte_ctr).
+
+[ ] Select the top chart, open the Edit Chart dialog, disable Auto-
+ Scaling on the Y-Axis. Set Minimum to zero, Maximum to 12,
+ and press OK. Verify that the Y-Axis increases to this range.
+[ ] Repeat the above, except now set the Maximum to 5. Verify that
+ the Y-Axis updates to show the new maximum and that only the
+ yellow chart (sample.double.one) remains visible.
+[ ] Repeat once more, now setting Minimum to 5 and Maximum to 15.
+ Verify the Y-Axis scale change and that only the blue plot
+ (sample.double.ten) is now visible.
+
+[ ] Click the Live button to expose the Time Controls. Press the
+ Stop button. Wait 5 seconds, then press Play.
+[ ] Verify that there is a "gap" in all chart data (not zero) for
+ the time stopped, then it should continue to plot as before.
+
+[ ] Change the Interval to 0 seconds, and then press Play.
+ Verify that the Interval returns back to its previous valid
+ state and the charts are updated as before.
+[ ] Change the Interval to 1.5 seconds, and then press Play.
+ Verify that the time pulse is emitted now every two seconds
+ and that the display is updated at that frequency now.
+
+[ ] Change the Timezone to UTC in the Time Control dialog.
+ Verify that the position text is updated with the new time,
+ and that the pmchart time axis is updated also.
+[ ] Change back to localtime, verify position and time axis again.
+
+[ ] Run: pmchart -c CPU -L -t 0.025
+[ ] This should be updating extremely frequently, and depending on
+ the capabilities of your hardware will either keep up beautifully
+ (wow, nice machine!) or frequently miss updates (this is the case
+ with my laptop). To increase the probability that deltas will be
+ missed, wiggle the cursor around over the CPU chart, which makes
+ pmchart do more work. When updates are missed pmchart must plot
+ a blank section in the chart, but then it should continue on with
+ normal plotting.
+
+
+Archive mode
+
+[ ] Run: pmchart -c views/ScaleManual -t 1 -a archives/chartqa1
+ This should display two charts - the top one with instantaneous
+ sample metrics (sample.double.one and sample.double.ten), lower
+ chart with one counter metric (sample.byte_ctr). The initial
+ display should show a series of values for Thurs, Oct 11 2007,
+ with one visible "gap" in the series (both charts, same time).
+
+[ ] Click the Archive button to expose the Time Controls.
+[ ] Press Play, and let it run through to the end of the archive
+ (its not very long). There should be two time periods where
+ no values are displayed (note: plotting should stop completely
+ in these sections - broken lines, the plot values should *not*
+ dip to zero).
+[ ] Verify that when the end of the archive is reached, the time
+ controls are updated to Stop state, in both the Time Control
+ window and pmchart.
+[ ] Press Back, and let it run back to the start of the archive.
+ Verify that when the start of the archive is reached, time
+ controls are updated to Stop state in both the Time Control
+ window and pmchart.
+[ ] Change the Archive Control mode to Step, then take three steps
+ forward, and four steps back. Verify that the time controls
+ are update to Stop state in both the Time Control window and
+ pmchart.
+[ ] Change the Archive Control mode to Fast. Fast forward to the
+ end of the archive, verify it stops at the end, then fast back
+ to the start. Again verify that it stops, and the interface
+ state (icons) in both windows is updated to indicate this.
+[ ] Change back to Normal Archive Control mode. Press Play. Now
+ increase and decrease the playback Speed while pmchart is
+ displaying the data from the archive. Use both the direct
+ text input mechanism, and the wheel. You can use the little
+ button next to the wheel to reset Speed to its original value.
+[ ] Play space invaders! Randomly change mode, direction, speed,
+ etc. and verify that the interface doesn't get into a hung or
+ unexpected state.
+
+[ ] Change the Interval to 0 seconds, and then press Play.
+ Verify that the Interval returns back to its previous valid
+ state and the charts are updated as before.
+[ ] Change the Interval to 1.5 seconds, and then press Play.
+ Verify that the time pulse is emitted now every two seconds
+ and that the display is updated at that frequency now.
+
+[ ] Change the Timezone to UTC in the Time Control dialog.
+ Verify that the position text is updated with the new time,
+ and that the pmchart time axis is updated also. Also verify
+ that the Archive Bounds dialog displays an updated timeframe.
+[ ] Change back to localtime from the archive; verify position,
+ time axis and Archive Bounds again.
+
diff --git a/qa/interact/chart-create-edit-testcases b/qa/interact/chart-create-edit-testcases
new file mode 100644
index 0000000..349e8e2
--- /dev/null
+++ b/qa/interact/chart-create-edit-testcases
@@ -0,0 +1,227 @@
+Creating and Editing Charts
+===========================
+
+Live Create
+
+[ ] Start pmchart, click on New Chart in the File Menu Item or Toolbar.
+ Verify that the New Chart dialog is displayed with no entries in
+ the Chart Plots list, one host in the Available Metrics list, and
+ one level of the local hosts metric namespace expanded.
+[ ] Resize the window, down to its minimum size and up to a larger size
+ than the initial window. Verify the child widget layout remains as
+ sensible as possible for the window size.
+[ ] Before selecting anything click on the OK push button, and verify
+ that a warning dialog is displayed (No metrics selected), that
+ the New Chart dialog remains on screen and no chart is created in
+ the main pmchart window.
+
+[ ] Verify the metic namespace traversal and selection functionality:
+ - Double click on the hostname, verify the metric list collapses.
+ - Double click on the hostname, verify the list reappears.
+ - Select "sample", then "seconds". Verify the full metric path has
+ appeared in the text box below the list.
+ - Click the blue Metric Info button and in the Info dialog verify
+ that the Info tab displays the metric name, short help text,
+ descriptor (type, indom, semantics, units), long help, and the
+ current value. Then click on the Value tab, which should cause
+ the pmtime live window to be displayed and the current values
+ for sample.seconds should be reported at the current interval.
+ - Click the red Delete button. It should be disabled, so nothing
+ should happen here at this stage.
+ - Click the left-arrow button and verify the metric appears in the
+ Chart Plots list, fully expanded, and with the default colour.
+ - Now click the big red Smite button again, and verify the metric
+ is removed from the Chart Plots list.
+ - Select samples.seconds again from the Available Metrics list, and
+ press OK. Verify that a line plot chart is created which starts
+ plotting this metric (its value should constantly hover very close
+ to the sample interval).
+
+[ ] Verify default metric colors
+ - Open the Settings dialog and select the Colors tab.
+ - Open the New Chart dialog, navigate to sample.hordes in the
+ Available Metrics list, and (multi-) select the first 50 instances.
+ - Click OK and verify from the legend that the colours selected match
+ the default plot colour rotation.
+ - Select Delete Chart from the Edit menu.
+
+[ ] Verify chart metadata
+ - Open the New Chart dialog, navigate to sample.load and click
+ on the left-arrow button to add it to the Chart Plots list.
+ - Click on the Chart tab, and modify the following attributes:
+ Title: NewChartQA
+ Style: Area Plot
+ Legend: Off
+ Y-Axis Auto-Scale: Off
+ Min: 40
+ Max: 45
+ - Click OK, and verify that the chart is created with all of these
+ parameters in effect.
+ - Close the Chart
+ - Open the New Chart dialog, navigate to the sample metrics and
+ select both recv_pdu and xmit_pdu, and add them to the Chart Plot
+ list simultaneously using the left-arrow button.
+ - Click on the Chart tab and set Style: to Stacked Bar.
+ - Click OK, and verify that a stacked bar chart is created.
+ - Close the Chart
+
+[ ] Add Host
+ - Open up the New Chart dialog
+ - Push the Add Host button
+ - enter no.such.host and verify nothing bad happens
+ - enter your valid remote QA host and verify it is added to
+ the Available Metrics list with its top level metric names.
+ - Select sample.long.one from the first host, and sample.long.ten
+ from the second, and add the two metrics to the Chart Plot list.
+ - Click on the Chart dialog, and set the style to Stacked Bar.
+ - Click on OK and verify that a bar chart is created with the two
+ metrics, one from each host, values one and ten respectively.
+ - Close the Chart
+
+[ ] Verify color selection Tab
+ - Open up the New Chart dialog
+ - Add the sample.drift metric to the Chart Plots and click Colors.
+ - Verify that the First colour box (below Revert button) displays
+ the current (#-cycle default) colour.
+ - Drag the cursor around in the color and darkness selection boxes
+ and verify that the colour box above the Apply (left arrow) push
+ button changes as you move the cursor. Verify that the HSV/RGV
+ values change as well.
+ - Type into each of the HSV/RGB spin boxes - they should not accept
+ non-numeric input, modifying a value on one row (HSV or RGB) will
+ affect values on the other, and all have a range between 0 - 255,
+ except for Hue, which is 0 - 359.
+ - Select a colour different to the default plot colour, and press
+ the Apply button. Verify that the colour displayed in the Chart
+ Plot list is updated.
+ - Press the Revert button, and verify that the colour displayed in
+ the Chart Plot list is reverted to its previous value.
+ - Press OK.
+
+
+Live Edit
+
+[ ] Click on Edit Chart from the Edit menu. Verify that the metric
+ from the previous exercise (sample.drift) is the only one displayed
+ in the Chart Plots list, and its colour matches the previous colour.
+[ ] Select sample.drift in the Chart Plots list.
+
+[ ] Verify the color selection Tab
+ - Select a new (different) colour and press the left-arrow button to
+ Apply the change.
+ - Enter a plot label of "Drifter".
+ - Press OK, and verify that the chart changes to using the new colour
+ and new legend label for its sample.drift plot.
+
+[ ] Verify changing each piece of chart metadata
+ - Click on the Edit Chart action, and modify the following attributes:
+ Title: EditChartQA
+ Style: Utilization
+ Legend: Off
+ Y-Axis Auto-Scale: Off
+ Min: 1
+ Max: 1
+ - Click OK, and verify that a window is displayed preventing min/max
+ from being the same.
+ - Change Y-Axis Max: to 1.
+ - Click OK, and verify that the chart is created with all of these
+ parameters in effect.
+ - Click on the Edit Chart action, and modify the following attributes:
+ Title: EditChartQA2
+ Style: Line Plot
+ Legend: On
+ Y-Axis Auto-Scale: On
+ - Click OK, and verify that the chart is created with all of these
+ parameters in effect.
+
+[ ] Verify adding and removing metrics
+ - Bring up the Edit Chart dialog. Select the sample.drift metric from
+ Chart Plots and press the red Delete button. Now press OK, and make
+ sure that a dialog is displayed preventing the creation of a chart
+ with no metrics.
+ - Press Cancel.
+ - Bring up the Edit Chart dialog. Select the sample.drift metric from
+ Chart Plots and press the red Delete button. Select sample.load in
+ the Available Metrics list, add it to the Chart Plots list, and then
+ press OK. Verify that the chart is now displaying only sample.load.
+
+[ ] Check handling of instance names with spaces
+ - Run: pmchart -a archives/spotinstance -c views/SpotInstances
+ - Edit -> Chart
+ + Verify that the list of existing chart metrics shows the instance
+ name correctly - i.e. "kernel.all.cpu.wait.total" is listed as an
+ instance name and not part of the metric name.
+
+[ ] Check the conversion of plot style in live mode
+ - Run: pmchart -c CPU -c CPU
+ (yes, the view appears twice)
+ - Edit -> Chart
+ + step through the Styles for the bottom chart, and verify that the
+ results mactch those shown in the top chart
+ Utilization -> Line Plot -> Utilization
+ Utilization -> Bar Plot -> Utilization
+ Utilization -> Stacked Bar Plot -> Utilization
+ Utilization -> Area Plot -> Utilization
+
+[ ] Check the hiding of plots in archive mode
+ - Run: pmchart -c CPU -c CPU -t 1 -a archives/viewqa1
+ (yes, the view appears twice)
+ - in the lower chart, go through this sequence and verify that the
+ plotted values match the values in the upper chart ... at the
+ end of each cycle the two charts should be identical
+ + click Idle off in the legend
+ + click User off in the legend
+ + click Kernel off in the legend
+ + click Nice off in the legend
+ + click Intr off in the legend
+ + click Wait off in the legend
+ (bottom chart should be blank)
+ + click Wait on in the legend
+ + click Intr on in the legend
+ + click Nice on in the legend
+ + click Kernel on in the legend
+ + click User on in the legend
+ + click Idle on in the legend
+ - Edit -> Chart and change Style to Line Plot for both charts (may need
+ to Step in the pmtime dialog to get the plots updated correctly), then
+ repeat the legend off and on sequence above
+
+Archive Create
+
+[ ] Click on the Archive Tab. Click on the New Chart toolbutton. Click
+ on the Archive push button, and open up pcp-gui/qa/archives/viewqa1,
+ pcp-gui/qa/archives/viewqa2 and pcp-gui/qa/archives/viewqa3.
+[ ] Verify that the hosts "edge" and "leaf" are displayed along with the
+ top level of their respective metric namespaces.
+ Verify also that the Time Axis in the main window has been updated
+ to display a timeframe in September 2007, EST.
+[ ] Create a CPU view from the archive
+ - Select all of the kernel.all.cpu metrics from the Available Metrics
+ list and add them to the Chart Plots list.
+ - Modify each of the colours - dark blue for "user", red for "sys",
+ "green" for idle, cyan for "wait.total" and light yellow for "intr".
+ - Change the chart properties:
+ Title: CPU Utilisation QA
+ Style: utilisation
+ - Press OK and inspect your handiwork.
+[ ] Close the Archive Tab.
+
+
+Error handling
+
+[ ] Go through all the "problematic" sample PMDA metrics and verify:
+ - Attempt to create a chart with sample.darkness.
+ (should not be possible - instance domain but no values)
+ - Attempt to create a chart with sample.noinst.
+ (should not be possible - no instance domain)
+ - Attempt to create a chart with sample.needprofile.
+ (should not be possible - no profile set)
+ - Attempt to create a chart with sample.string.null
+ (should not be possible - string value)
+ - Attempt to create a chart with sample.aggregate.null
+ (should not be possible - aggregate value)
+ - Attempt to create a chart with sample.bad.unknown
+ (should not be possible - unknown PMID)
+ - Attempt to create a chart with sample.bad.nosupport
+ (should not be possible - ENOSUPPORT PCP errno)
+
diff --git a/qa/interact/chart-scaling-testcases b/qa/interact/chart-scaling-testcases
new file mode 100644
index 0000000..a49b47f
--- /dev/null
+++ b/qa/interact/chart-scaling-testcases
@@ -0,0 +1,53 @@
+Scaling Charts
+==============
+
+See also qa 006 for automated tests.
+
+[ ] Start pmchart as follows:
+ $ pmafm 20071023-08-06-36.folio replay
+
+[ ] The initial configuration should be from top to bottom (5 charts):
+
+ Y-axis scale Max Y-axis value
+ Kbyte 1000
+ byte/millisec 1000
+ nanosec 1000
+ <nothing> 1000
+ Kbyte/sec 1000
+
+[ ] Open pmtime
+ - move the time slider back to the start of the archive
+ - change Archive Control to Step
+ - click Step Forward 10 times
+
+ The chart configuration should change to be:
+
+ Y-axis scale Max Y-axis value
+ Gbyte 110
+ Mbyte/millisec 36
+ millisec 10
+ <nothing> 0.18
+ Kbyte/sec 80
+
+[ ] Change Archive Control to Fast, and click Fast Forward until the end
+ of the archive is reached.
+
+ The chart configuration should change to be:
+
+ Y-axis scale Max Y-axis value
+ Gbyte 110
+ Mbyte/millisec 100
+ hour 30
+ <nothing> 1
+ Mbyte/sec 50
+
+[ ] Click Fast Backward until the start of the archive is reached.
+
+ The chart configuration should change to be:
+
+ Y-axis scale Max Y-axis value
+ Gbyte 110
+ Mbyte/millisec 36
+ millisec 0.1
+ <nothing> 0.18
+ Kbyte/sec 80
diff --git a/qa/interact/export-print-testcases b/qa/interact/export-print-testcases
new file mode 100644
index 0000000..0616a0c
--- /dev/null
+++ b/qa/interact/export-print-testcases
@@ -0,0 +1,57 @@
+Export and Print
+================
+
+Export
+
+[ ] Run: pmchart -a archives/chartqa1 -c views/ScaleManual
+[ ] Verify that the default image format (png) is show, the default file
+ name is $HOME/chart.png, and that the Width/Height are 302/280 pixels
+ respectively.
+[ ] Shift the quality slider up/down - check that the value is updated in
+ the Quality spin box. Check the reverse also - that the slider moves
+ when values are entered via the Quality spin box controls.
+[ ] Enter the following parameters:
+ - Image format: jpeg (make sure that the file extension changes)
+ - Transparent background disabled
+ - Filename /tmp/qa1.jpeg
+ - All Charts in Tab enabled
+ and Press OK.
+[ ] Verify using an image editor (eog, gimp, xv, ...) that a jpeg image
+ matching the main pmchart window is generated in that file.
+[ ] Select the second (bottom) chart in the main window, then open the
+ Export dialog once again.
+[ ] The previous settings should all have been preserved. Enable the
+ transparent background option, and click the Selected Chart Only
+ toggle button. When you click that button, the Width/Heigth should
+ be updated to 302/151 pixels. Modify those values to 300/150 pixels.
+ Change the format to png (check the filename extension is updated),
+ and press OK.
+[ ] Verify with your image viewing tool that a transparent background
+ png format image with only the selected chart has been generated,
+ and that it has dimensions 300/150 pixels.
+[ ] Open the Export dialog once again, and press OK. You should see a
+ dialog prompting you whether you want to overwrite the existing
+ /tmp/qa1.png file. Click cancel, and cancel in the export dialog.
+
+
+Print
+
+[ ] Open the Print Dialog, click on Print to File, and enter the
+ file name "/tmp/qa2.pdf".
+[ ] Set paper Orientation to Landscape.
+[ ] Set paper Format to B5.
+[ ] Press Print, and verify that the file generated displays both of
+ the charts and matches the above printing parameters, using a pdf
+ viewing tool (xpdf, gnome-viewer, ...)
+
+[ ] Open the Print Dialog, click on Print to File, and enter the
+ file name "/tmp/qa3.pdf".
+[ ] Set paper Orientation to Portrait.
+[ ] Set paper Format to A4.
+[ ] Press Print, and verify that the file generated matches these
+ parameters, using your pdf viewing tool, and shows both graphs.
+
+[ ] If you have a printer connected, send a job to the printer instead
+ of to a file, and verify it once more (print parameters will now
+ depend on your printer and available paper).
+
diff --git a/qa/interact/help-system-testcases b/qa/interact/help-system-testcases
new file mode 100644
index 0000000..2ea61b1
--- /dev/null
+++ b/qa/interact/help-system-testcases
@@ -0,0 +1,19 @@
+On-Line Help System
+===================
+
+[ ] Check the Manual is accessible from Help menu.
+[ ] Verify the Tutorial is accessible from Help menu.
+[ ] Check that the About dialog shows current version.
+[ ] Verify the See Also dialog is showing good stuff.
+[ ] Check "What's This" by randomly selecting main window/dialog widgets
+ and seeing if a/ Tooltip help is displayed for each, and b/ if it makes
+ any sense. Search for any widgets that don't display some help, they
+ need to be fixed.
+
+[ ] Repeat each of the above items for pmtime.
+
+[ ] Check any major new features in this release are documented.
+[ ] Skim-read the manual looking for out-of-date images, typos, etc.
+[ ] Skim-read the tutorial looking for out-of-date images, typos, etc.
+
+[ ] Verify that the manual and tutorial are accessible on the Web.
diff --git a/qa/interact/query-testcases b/qa/interact/query-testcases
new file mode 100644
index 0000000..5cea555
--- /dev/null
+++ b/qa/interact/query-testcases
@@ -0,0 +1,80 @@
+pmquery
+=======
+
+Message
+
+[ ] Run: pmquery -icon archive -b One -b Two -b Three
+ This should display a dialog with three numbered buttons,
+ an archive icon and empty text box. Click on the button
+ labeled "Two", and the dialog should be dismissed and the
+ text "Two" written to the terminal.
+
+[ ] Run: pmquery -icon info -b One -b Two -B Three
+ This should display a dialog with three numbered buttons,
+ a light bulb icon and empty text box, and the button with'
+ label Three should be visibly the default. Hit the enter
+ key, and the dialog should be dismissed with the text
+ "Three" written to the terminal.
+
+[ ] Run: pmquery -icon error -b Cancel -B OK
+ A dialog with stop sign and two buttons. Hit the Escape
+ key and the window should be dismissed with no output sent
+ to the terminal.
+
+[ ] Run: pmquery -icon question -buttons OK,Cancel -default OK
+ Window should have a question mark icon, two buttons, with
+ the OK button being leftmost and default. Press the OK
+ button and verify that the text OK is sent to the terminal.
+
+[ ] Run: pmquery -icon question -buttons OK:1,Cancel,201:201
+ A window should be displayed with three buttons - the third
+ should have the label "201", and clicking it should cause
+ pmquery to exit with status 201 - verify this by typing
+ "echo $?" in the terminal after clicking the "201" button.
+
+Input
+
+[ ] Run: pmquery -icon host -input -t default.local
+ The window should have the conputer icon, and an editable
+ text box containing the text default.local. Append "123"
+ to the text and press "Continue" - verify that the modified
+ string is displayed in the terminal.
+
+
+File I/O
+
+[ ] Run: echo Text | pmquery -icon critical -file -
+ Should display an error icon and a text box containing the
+ string "Text"
+
+[ ] Run: pmquery -icon critical -file /dev/null
+ Should display an error icon and an empty text box.
+
+[ ] Run: pmquery -icon critical -file /tmp/message
+ Should display a "no such file" error message
+
+[ ] Run: echo Text > /tmp/message
+ pmquery -icon critical -file /tmp/message
+ Should display an error icon and a text box containing the
+ string "Text".
+
+[ ] Run: pmquery -icon critical -B OK -print
+ Hit the OK button and text "OK" should be written out.
+
+[ ] Run: pmquery -icon critical -B OK -noprint
+ Hit the OK button and no text should be written out.
+
+[ ] Run: pmquery -icon critical -B OK -timeout 2
+ Wait for two seconds, and the dialog should dismiss itself.
+
+[ ] Run: pmquery -icon critical -file /tmp/message -useslider
+ Text box with "Text" should have a vertical slider.
+
+[ ] Run: pmquery -icon critical -file /tmp/message -noslider
+ Text box with "Text" should have no vertical slider.
+
+[ ] Run: pmquery -icon critical -file /tmp/message -noframe
+ Text box with "Text" should have no outline frame.
+
+[ ] Run: pmquery -icon critical -t one -t two -t three -header Eek
+ Three lines of text, a single button and window titled "Eek".
diff --git a/qa/interact/record-testcases b/qa/interact/record-testcases
new file mode 100644
index 0000000..d0bc9dc
--- /dev/null
+++ b/qa/interact/record-testcases
@@ -0,0 +1,56 @@
+Record Mode
+===========
+
+Phase A:
+[ ] Check running pmlogger processes (ps auw | grep pmlogger)
+[ ] Open one CPU View for localhost and a second CPU view for
+ a remote host, click Record -> Start -> OK
+[ ] Verify red light comes on and Record menu items are:
+ enabled (Query/Stop/Detach) and disabled (Start)
+[ ] Click Record -> Query, check contents of 2 pmlogger popups
+[ ] Click Record -> Stop, check contents of 2 pmlogger popups.
+[ ] Verify red light is now disabled and Record menu items are
+ disabled (Query/Stop/Detach) and enabled (Start).
+[ ] Click on newly created Tab, click on Archive Time Control
+ push button in bottom left corner, in pmtime select Options
+ -> Boundaries and verify the time window matches up with
+ the timeframe recorded.
+[ ] Fast forward through the archive, then Fast Back to start,
+ checking the charts for both hosts matches expectations.
+[ ] Verify no additional pmlogger processes are running.
+[ ] Run: pmafm ~/.pcp/pmlogger/[timenow].folio replay
+ Verify a pmchart starts up with appropriate archive view
+ of CPU utilisation for both hosts.
+
+Phase B:
+[ ] Check running pmlogger processes (ps auw | grep pmlogger)
+[ ] Open one CPU View for localhost and a second CPU view for
+ a remote host, click Record -> Start -> OK
+[ ] Verify red light comes on and Record menu items are:
+ enabled (Query/Stop/Detach) and disabled (Start)
+[ ] Click Record -> Detach, check contents of 2 pmlogger popups.
+[ ] Verify red light is now disabled and Record . menu items:
+ disabled (Query/Stop/Detach) and enabled (Start)
+[ ] Verify two additional pmlogger processes are running.
+
+Phase C:
+[ ] Open a Disk View for localhost, click Record -> Start
+[ ] Verify only valid double precision numbers can be entered
+ as the time interval, try: abc, 1.1.1, 12.a4, -1 (all bad)
+[ ] Set the time units to minutes and the interval to 0.001.
+[ ] Push folio button, set folio to "/tmp/folio" from popup
+[ ] Push logfile button, try set log to "/tmp" from popup
+ (verify this isn't possible), then "/var/tmp/pmlogger.log"
+ from the popup.
+[ ] Push archive button, set name to "/tmp/archive/record"
+[ ] Click OK
+[ ] Leave run for a few seconds, then click Record -> Stop
+[ ] Run: pmdumplog -l /tmp/archive/record
+ Verify the output matches the time recorded
+[ ] Run: pminfo -a /tmp/archive/record
+ Verify the output lists several kernel.all.cpu metrics,
+ and three pmcd.pmlogger metrics.
+[ ] Run: pmafm /tmp/folio replay
+ Verify a pmchart starts up with appropriate archive view
+[ ] Run: rm -fr /tmp/archive /var/tmp/pmlogger.log /tmp/folio
+
diff --git a/qa/interact/search-testcases b/qa/interact/search-testcases
new file mode 100644
index 0000000..7b14b54
--- /dev/null
+++ b/qa/interact/search-testcases
@@ -0,0 +1,75 @@
+Search Dialog for Metric Selection
+==================================
+
+[ ] Start pmchart, click on New Chart from the File Menu Item or Toolbar
+ Verify that the Search icon (magnifying glass) is enabled on
+ the central menu bar
+ Click the Search icon
+ The Metric Seach dialog should appear with
+ - Metric Name Pattern empty
+ - Instance Name Pattern empty
+ - Clear and Cancel buttons enabled
+ - Select All, Search and OK buttons disabled
+
+[ ] In the Metric Name Pattern input field, enter sample.bi
+ Note that Search is enabled at the first keystroke (s)
+ Excute the search via each of the following
+ - Enter
+ - click Search
+ - type Alt-S
+ Results should always be the same ... sample.bigid and the 9 instances
+ of the sample.bin metric
+
+[ ] Test the selection behaviour for the matched metrics
+ - Select All button
+ - Click (select one, deselect all others)
+ - Shift-click (select a range to last click)
+ - Ctl-click (toggle single item selection)
+
+[ ] Select All then Ctl-click sample.bin[bin-500], then click OK
+ Expect 9 metrics to be selected in the New Chart dialog, and the Available
+ Metrics tree to be expanded at the [-]-- sample and [-]-- bin nodes
+
+[ ] Return to the Metric Search dialog.
+ Expect the previous state to be preserved - Metric Name Pattern is
+ sample.bi, 10 matching results and 9 selected results, all buttons enabled
+
+[ ] Click Clear
+ Should revert to the initial state
+ - Metric Name Pattern empty
+ - Instance Name Pattern empty
+ - Clear and Cancel buttons enabled
+ - Select All, Search and OK buttons disabled
+
+[ ] Go to the New Chart dialog,
+ - in live mode, select disk.all.read and select all of the instances
+ for network.interface.total.packets.
+ - in archive mode, select sample.bigid and all of the instances for
+ pmcd.pmlogger.port
+ Click the search icon to open the Search Metric dialog.
+ The New Chart dialog should be unchanged and insensitive (Search
+ Metric is modal).
+
+[ ] In the Instance Name Pattern, enter ^bin-[0-5]..$ then click Search.
+ Expect 40 matches for the instance names bin-100 to bin-500 for the
+ 8 metrics (.bin .bogus_bin .bucket and .part_bin for the sample and
+ sampledso pmdas)
+ In the Metric Name Pattern, enter b.*_bin then click Search.
+ Expect just 10 matches for the .bogus_bin metrics in the sample and
+ sampledso pmdas.
+
+[ ] Click Select All, then click OK.
+ Back in the New Chart dialog, click the Insert plot into button
+ and verify that all of metrics appear in the chart
+ - disk.all.read (or sample.bigid)
+ - all the instances of network.interface.total.packets (or
+ pmcd.pmlogger.port)
+ - instances bin-100 thru bin-500 for sample.bogus_bin
+ - instances bin-100 thru bin-500 for dsosample.bogus_bin
+
+[ ] Repeat all of the above for archive mode, starting pmchart as
+ follows:
+ Run: $ pmchart -a pcp-gui/qa/archives/viewqa1
+ There are no sampledso metrics in this archive, so the set of
+ matching metrics will typically be halved compared to the live
+ tests.
diff --git a/qa/interact/settings-testcases b/qa/interact/settings-testcases
new file mode 100644
index 0000000..0b6a92d
--- /dev/null
+++ b/qa/interact/settings-testcases
@@ -0,0 +1,103 @@
+Global Settings
+===============
+
+Sampling
+
+[ ] Open the Settings dialog. This is available from the Edit
+ menu (Linux) or from the pmchart Preferences menu on a Mac.
+[ ] Type some invalid chart intervals into the one-line editor
+ (try: abc, 0.1.1, -1 - none should be possible)
+[ ] Set the chart interval to zero and press OK - should block
+ this with an error dialog.
+
+[ ] Type some invalid logger intervals into the one-line editor
+ (try: 0XY, 1.0.2, -1 - none should be possible)
+[ ] Set the logger interval to zero and press OK - should block
+ this with an error dialog.
+
+[ ] Set default logger interval to 20 minutes
+ Change units to Milliseconds; value should be: 1,200,000
+ Change units to Seconds; value should be: 1,200
+ Change units to Minutes; value should be: 20
+ Change units to Hours; value should be: 0.333333
+ Change units to Days; value should be: 0.138888
+ Change units to Weeks; value should be: 0.001984
+[ ] Set default chart interval to 0.25 seconds
+ Change units to Milliseconds; value should be: 250
+ Change units to Seconds; value should be: 0.25
+ Change units to Minutes; value should be: 0.004166
+ Change units to Hours; value should be: 0.000069
+ Change units to Days; value should be: 0.000002
+ Change units to Weeks; value should be: 0.000000
+ Change units to Seconds; reset value to 0.25 seconds
+[ ] Move the sample history and visible history sliders - they
+ should never allow visible history to become less than the
+ sample history, and neither is ever allowed to become less
+ than 2.
+[ ] Check that only numeric values can be entered into each of
+ the visible and simple history spin boxes - check range of
+ values is again 2 -> maximum (360 at the moment).
+[ ] Check that the spin box Up/Down arrows increase/decrease
+ each value by 1, and that PageUp/PageDown increase/decrease
+ each value by 10 - check the range of values is again 2 ->
+ the maximum, for all of Up/Down/PageUp/PageDown.
+[ ] Set sample history size to 4
+[ ] Set visible history size to 2
+[ ] Press OK, exit pmchart, restart pmchart, bring up Settings
+ dialog and verify the following values are set...
+ ( ) Default Chart Interval: 0.25 seconds
+ ( ) Default Record Interval: 1200 seconds
+ ( ) Default Visible Points: 2
+ ( ) Default Sample Count: 4
+
+
+Colors
+
+[ ] Open the Settings Dialog, click on the Colors tab.
+[ ] Click the Selected Chart Highlight button, select a different
+ colour (hot pink), and click OK. Verify that the push button
+ changes colour to your selection.
+[ ] Click the Canvas Background button, select a different colour
+ (white), and click OK. Verify that the push button changes
+ colour to your selection.
+[ ] Click on one of the existing Default plot colours and select a
+ different colour. Verify the new colour is displayed for that
+ button.
+[ ] Click on any three of the white (empty) color buttons and make
+ a colour selection for each. Any three buttons - gaps in the
+ set are fine, and testing extremes (next free slot, last free)
+ is a good idea too).
+[ ] Push the OK button to accept your changes.
+[ ] Open the QA View "qa/views/RotateColors", and expand the window
+ the full height of your screen . Also open the Settings dialog
+ again at the colors page, and verify that the colors have been
+ used for each plot in the View in the order listed on the page.
+[ ] Verify also that the Settings dialog is displaying the colours
+ you selected before, but with no spaces between colours now -
+ i.e. with any unused (white) "gap" buttons removed.
+[ ] Finally, verify that the plot after the final colour specified
+ originally in the Settings dialog has rotated back to the first
+ colour, the next has rotated back to the second colour, etc.
+
+
+Toolbar
+
+[ ] Open the Settings Dialog, click on the Toolbar tab.
+[ ] Uncheck the "Show Toolbar on Startup" check box.
+[ ] Select "Right and Vertical" from the Location/Orientation box.
+[ ] Quit pmchart. Restart pmchart. Verify that the Toolbar is not
+ displayed at all. Verify also that the Toolbar option from the
+ Options menu is not checked.
+[ ] Select the Toolbar item in the Options menu. Verify that the
+ toolbar is now displayed on the right of the main charting area
+ instead of across the top of the main window.
+[ ] Open the Settings dialog once more, verifying that the "Show
+ Toolbar on Startup" option is not checked and that the Location/
+ Orientation combo box shows Right/Vertical.
+[ ] Make a series of selections from the Actions list (items are
+ selected and deselected simply by clicking on them). Press the
+ OK button and verify that the main window is updated to display
+ your selected actions, instead of the defaults.
+[ ] Exit pmchart. Restart pmchart. Verify that your selected set of
+ actions is still displayed, in preference to the defaults.
+
diff --git a/qa/interact/tab-create-edit-testcases b/qa/interact/tab-create-edit-testcases
new file mode 100644
index 0000000..0ea288e
--- /dev/null
+++ b/qa/interact/tab-create-edit-testcases
@@ -0,0 +1,70 @@
+Creating and Editing Tabs
+=========================
+
+Live Edit
+
+[ ] Run: pmchart -t 0.5 -c CPU -c Disk
+[ ] Select Start from the Record menu. Press OK to start recording.
+[ ] Click on Edit Tab in the Edit Menu, to bring up the default live
+ mode tab details.
+ Verify that the Live Hosts button is checked, the displayed Label
+ matches the original Tab ("Live") and the default sample ranges
+ are displayed correctly in both sliders and spin boxes (should be
+ 60 Visible and 180 Total Samples). Verify also that it is not
+ possible to modify the Live/Archive radio button selection.
+[ ] Modify the Total samples using both the spinbox and the slider to
+ increase and decrease its value. Verify that the Total Samples
+ value cannot be reduced below the Visible Samples value, and that
+ neither can be reduced below 2. Modify the Visible Samples value
+ using both methods. Verify that its value cannot be increased
+ beyond the Total Samples value.
+[ ] Verify the minimum and maximum ranges of both Visible and Total
+ Samples - currently this is 2 to 360.
+[ ] Press Cancel.
+
+[ ] Click on the Zoom In button (from the Toolbar or Edit menu)
+ repeatedly. Verify that the number of visible points decreases
+ down to the minimum (2 samples) and that the toolbar and menu
+ actions become disabled at that point.
+[ ] Click on the Zoom Out button repeatedly. Verify that the number
+ of visible points increases up to the maximum (360 samples), that
+ the Zoom In action becomes enabled after the first press, and that
+ the Zoom Out action is disabled once the maximum is reached.
+[ ] Zoom In three clicks, then expose the Edit Tab dialog. The Visible
+ Samples should be 252, and the Total Samples should still be 360.
+[ ] Resize the Edit Tab window, down to its minimum size and up to a
+ larger size than the initial window. Verify the child widget layout
+ remains as sensible as possible for the window size.
+[ ] Change the Label to "LiveQA", set Visible points to 120 and press OK.
+ Verify that the changes are made to the current pmchart Live tab.
+
+Live Create
+
+[ ] Click on the Create Tab chart from the Edit menu or toolbar.
+ Check the Live Hosts radio button, set the Label to "LiveQA2", set
+ Visible points to 12 and Total points to 24. Press OK. Verify that
+ a new Live Tab is created with each of those parameters (use Edit
+ Tab dialog to verify the total/visible points setting).
+[ ] Open the CPU and Disk views in the new Tab. Verify that they start
+ to display data matching the same charts in the original Live tab.
+[ ] Select Close Tab from the File menu.
+
+Archive Create
+
+[ ] Select Stop from the Record menu.
+[ ] Verify that a new Archive Tab is created named "Record".
+[ ] Click on the new tab and verify that it is of archive type, has a
+ sensible time axis, and is displaying the same CPU/Disk views as
+ the original Live tab.
+[ ] Click on the archive time control button, and verify that the Bounds
+ dialog in the Time Controls matches the length of time you recorded.
+
+Archive Edit
+
+[ ] Click on the Edit Tab dialog for the new Archive Tab. Verify that
+ it displays the Archive radio button as checked (and not editable),
+ that the samples settings match the original Live Tab.
+[ ] Modify the Label to be "RecordQA" and press OK.
+[ ] Click on the Zoom In and Zoom Out toolbar buttons a few times and
+ verify that nothing unexpected happens.
+
diff --git a/qa/interact/view-create-save-testcases b/qa/interact/view-create-save-testcases
new file mode 100644
index 0000000..be941bd
--- /dev/null
+++ b/qa/interact/view-create-save-testcases
@@ -0,0 +1,124 @@
+Opening and Saving Views
+========================
+
+Live Open
+
+[ ] Start pmchart, click on Open View in the File Menu Item or Toolbar
+ Verify that the initial view displays the System views (CPU, Disk,
+ Loadavg, NFS, etc). All View names should be fully visible with a
+ (light blue folder) View icon associated with each.
+[ ] Resize the window, down to its minimum size and up to a larger size
+ than the initial window. Verify the child widget layout remains as
+ sensible as possible for the window size.
+[ ] Before selecting anything click on the Open push button, and verify
+ that a warning dialog is displayed (No views specified) and that
+ the Open View dialog remains on screen.
+
+[ ] Verify the filesystem traversal functionality - select your home
+ directory from the Path combo box. The list of displayed files
+ should be updated to match, and the System View toolbutton (top-
+ right corner) should no longer be selected.
+[ ] Click on the Parent toolbutton (arrow icon, just right of the Path
+ combo box), and verify this traverses to the parent directory).
+ Check that the Path combo box is updated each time to show the new
+ full path. Repeat clicking it until the root directory is reached.
+[ ] Click on the Path combo box, all directories visited should be in
+ the list.
+[ ] Select your home directory from the Path combo box again. Now walk
+ to the root of the filesystem by entering the parent directory (..)
+ into the File text box.
+
+[ ] Click on the Host combo box. At this stage it should just show the
+ local QA host name. Click on the Add Host push button, to the right
+ of the Host combo box. Enter an invalid name, e.g. no.such.host in
+ the Add Host dialog. Verify that the error is reported and that the
+ dialog stays on-screen. Press Cancel.
+[ ] Click the Add Host button once more, and this time enter a valid
+ remote hostname. Click OK, and then verify that the Host combobox
+ now displays two hosts, with the newly added host first in the list
+ (and selected as the default host now).
+ **Note: the host used next should be the local (not remote) QA host:
+[ ] Switch (back) to the local QA host in the Host combo box. Click
+ on the CPU and Disk view icons (need Ctrl+Click, for multi-select)
+ then click on the Open button. Verify that these views are indeed
+ opened in the main pmchart window (should have CPU/Disk metrics,
+ legend on, auto-scale for Disk view, 100% utilisation view for CPU).
+
+Live Save
+
+[ ] Select the Save View option from the File menu.
+[ ] Resize the window, down to its minimum size and up to a larger size
+ than the initial window. Verify the child widget layout remains as
+ sensible sensible as possible for the window size.
+[ ] Verify the filesystem traversal functionality - select your home
+ directory from the Path combo box. The list of displayed files
+ should be updated to match, and the User View toolbutton (top-
+ right corner) should no longer be selected.
+[ ] Click on the Parent toolbutton (arrow icon, just right of the Path
+ combo box), and verify this traverses to the parent directory).
+ Check that the Path combo box is updated each time to show the new
+ full path. Repeat clicking it until the root directory is reached.
+[ ] Click on the Path combo box, all directories visited should be in
+ the list.
+[ ] Select your home directory from the Path combo box again. Now walk
+ to the root of the filesystem by entering the parent directory (..)
+ into the File text box.
+
+[ ] Click on the User Views toolbutton (top right corner). Enter the
+ name "DynamicQA" into the File text box, and click the Save button.
+[ ] Open the Save Views dialog once more. Enter the name "DynamicQA"
+ into the File text box, and click the Save button. Verify that a
+ warning message is displayed saying that file exists; press Cancel.
+[ ] Check the "Preserve hostname in View" box. Enter the view name
+ "LiteralQA" in the file text box, and press the Save button.
+[ ] Create a new tab - click the New Tab tool button on the main window,
+ then enter the Label "Dynamic QA", ensure Live Host radio button is
+ enabled, and press the OK button. Click on the DynamicQA Tab (if it
+ isn't already visible), and Click the Open View tool button. Select
+ the remote host name entered earlier on, select our new "DynamicQA"
+ view from the list of views, and press OK. Verify that the view just
+ created shows metrics from the *remote* host.
+[ ] Create a new tab - click the New Tab tool button on the main window,
+ then enter the Label "Literal QA", ensure Live Host radio button is
+ enabled, and press the OK button. Click on the LiteralQA Tab (if it
+ isn't already visible), and Click the Open View tool button. Select
+ the remote host name entered earlier on, select our new "LiteralQA"
+ view from the list of views, and press OK. Verify that the view just
+ created shows metrics from the *local* host.
+
+Archive Open
+
+[ ] Click on the Archive Tab. Click on the Open View toolbutton. Click
+ on the Archive push button, and open up pcp-gui/qa/archives/viewqa1,
+ pcp-gui/qa/archives/viewqa2 and pcp-gui/qa/archives/viewqa3.
+[ ] Verify that the hosts "edge" and "leaf" are displayed alongside each
+ archive in the Archive combo box, and that "edge" is highlighted.
+ Verify also that the Time Axis in the main window has been updated
+ to display a timeframe in September 2007, EST.
+[ ] Navigate to pcp-gui/qa/views/NoSuchHost, and press the Open button.
+ Verify that an error dialog is displayed regarding no.such.host, and
+ that the main pmchart window is unchanged.
+[ ] Click on the User Views tool button, and open up the DynamicQA view.
+ Verify that this view is successfully opened for the host "edge".
+
+Archive Save
+
+[ ] Bring up the Save View dialog, enter "DynamicQA2" into the File text
+ box, and press the Save button.
+[ ] Bring up the Save View dialog, check the "Preserve hostname in View"
+ box, enter the view name "LiteralQA2" in the file text box, and press
+ the Save button.
+[ ] Bring up the Save View dialog, click on the User Views toolbutton
+ (near top right corner). Enter "LiteralQA2" into the File text box,
+ and press the Save button.
+[ ] Quit out of pmchart.
+ Run: $ pmchart -c LiteralQA2 -a pcp-gui/qa/archives/viewqa1
+ Verify that this fails and no changes are made to the pmchart window.
+ Run: $ pcp-gui -c LiteralQA2 -a pcp-gui/qa/archives/viewqa2
+ Verify that this successfully opens up an archive view.
+ Run: $ pmchart -c DynamicQA2 -h <remote>
+ Verify that this succeeds and opens up a live view.
+ Run: $ pmchart -c DynamicQA2 -a pcp-gui/qa/archives/viewqa1
+ Verify that this successfully opens up an archive view.
+ Run: $ pmchart -c DynamicQA2 -a pcp-gui/qa/archives/viewqa2
+ Verify that this successfully opens up an archive view.