This is an automated email from the ASF dual-hosted git repository.

davin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/daffodil-vscode.git


The following commit(s) were added to refs/heads/main by this push:
     new 7b27a84  initial testing checklist
7b27a84 is described below

commit 7b27a84decfdae662eb0cef8db5249dd7a65bf66
Author: Davin Shearer <[email protected]>
AuthorDate: Thu Aug 3 13:40:52 2023 -0400

    initial testing checklist
---
 src/tests/README.md | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 176 insertions(+)

diff --git a/src/tests/README.md b/src/tests/README.md
new file mode 100644
index 0000000..c715987
--- /dev/null
+++ b/src/tests/README.md
@@ -0,0 +1,176 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+# Testing Checklist
+
+## Requirements
+
+- [ ] install Java 8 or higher
+- [ ] supported VSCode version
+- [ ] operating system
+  - [ ] Windows
+    - [ ] x86
+  - [ ] Linux
+    - [ ] x86
+    - [ ] ARM
+  - [ ] MacOS
+    - [ ] x86
+    - [ ] Apple Silicon
+
+## Installation
+
+- [ ] install extension from file (.vsix)
+- [ ] install extension from marketplace
+- [ ] verify that the extension is installed and activated
+
+## DFDL Debugger
+
+- [ ] open a DFDL file
+- [ ] verify source highlighting
+- [ ] verify code completion
+- [ ] verify breakpoints
+- [ ] verify hex view
+- [ ] verify InfoSet view
+- [ ] verify InfoSet diff
+- [ ] verify InfoSet output in supported formats
+  - [ ] XML
+  - [ ] JSON
+
+## TDML
+
+- [ ] open a TDML file
+- [ ] generate a TDML file from debugging a daffodil schema
+- [ ] verify that the generated TDML file contains correct relative paths
+- [ ] verify parserTestCase object has name, root, model, description
+- [ ] verify that the infoSet and DocumentPart are correct
+- [ ] append to a TDML file by debugging a schema and specifying append and 
the file to append to
+- [ ] verify the new parserTestCase that was appended to the file
+- [ ] execute a TDML Schema through the debugger
+- [ ] verify that output generated matches original input
+- [ ] make sure that these work cross-platform
+
+## Data Editor
+
+- [ ] open a file (use small and large files of different types)
+  - [ ] verify that the tab is the base name of the file
+  - [ ] verify that the full path name is correct (if the file name is too 
long, there will be a horizontal scroll bar)
+  - [ ] verify that the Disk Size and Computed Size match the actual size of 
the file (hover over the values to see the size in bytes)
+  - [ ] verify that the file is loaded in less than 5 seconds regardless of 
the size of the file
+  - [ ] verify that the detected Content Type is correct for the file
+  - [ ] verify that the header min/max button shows and hides the header
+- [ ] navigation
+  - [ ] scroll through the file, using navigation buttons
+  - [ ] scroll through the file, using the pseudo scrollbar
+  - [ ] scroll through the file, using the mouse wheel
+  - [ ] scroll through the file, using keyboard shortcuts (up, down, page up, 
page down, home, end)
+- [ ] display modes
+  - [ ] verify changing the address radix (hexadecimal, decimal, and octal) 
works as expected
+  - [ ] verify changing the display radix (hexadecimal, decimal, octal, and 
binary) works as expected
+- [ ] profiler
+  - [ ] profile the file using the profile button
+  - [ ] verify that the radix used matches the address radix (hexadecimal/hex, 
decimal/dec, octal/oct)
+  - [ ] toggle the overlay (ASCII, None)
+  - [ ] toggle the scale (Linear, Logarithmic) and verify that the graph is 
updated accordingly
+  - [ ] hover over values in the graph to see the value and frequency (and 
ASCII character if in the printable range)
+  - [ ] green bars are for frequencies that are 1 standard deviation below the 
mean
+  - [ ] yellow bars are for frequencies that are within 1 standard deviation 
of the mean
+  - [ ] red bars are for frequencies that are 1 standard deviation above the 
mean
+  - [ ] change the start offset (use legal, illegal values, negative values, 
values that are too large, etc.)
+  - [ ] change the end offset (use legal, illegal values, negative values, 
values that are too large and too small, etc.)
+  - [ ] change the length (use legal, illegal values, negative values, values 
that are too large and too small, etc.), max length is 10 million bytes
+  - [ ] click the "Profile as CSV" button to download a CSV file of the 
profile and verify that it's populated correctly
+  - [ ] click somewhere outside of the profiler in the Data Editor tab to 
close the profiler
+- [ ] seek
+  - [ ] enter offsets in the seek box and use the Seek button and Enter key to 
navigate to the offset (use legal, illegal values, negative values, upper case 
and lower case for hexadecimal values, values in the wrong radix, values that 
are larger than the file size, etc.)
+  - [ ] change the address radix and verify that the seek box is updated 
accordingly (hexadecimal, decimal, octal)
+  - [ ] enter the file size into the seek box and verify that the screen 
scrolls to the last page
+- [ ] search
+  - [ ] enter a search term into the search box and use the Search button and 
Enter key to search for the term (use legal, illegal values with respect to the 
Edit Encoding)
+  - [ ] use terms that appear in the data and a term that does not appear in 
the data
+  - [ ] for Latin-1 and ASCII, try case insensitive searches
+  - [ ] verify that the search navigation buttons are enabled/disabled 
appropriately
+  - [ ] verify that the clear 'x' button in the search box clears the search 
term
+  - [ ] verify that the all search navigations buttons work as expected, and 
the search term is highlighted in the logical and physical views correctly with 
different display radixes
+  - [ ] verify that cancel resets the search and hides the search navigation 
buttons
+- [ ] replace
+  - [ ] enter a search term into the search box and a replacement term into 
the replace box and use the Replace button and Enter key to search for the term 
(use legal, illegal values with respect to the Edit Encoding)
+  - [ ] verify that the search navigation buttons are enabled/disabled 
appropriately
+  - [ ] verify that the navigation buttons work as expected, and the search 
term is highlighted in the logical and physical views correctly with different 
display radixes
+  - [ ] verify that the current highlighted search term is replaced when the 
Replace button is clicked and that it moves to the next search term if there is 
one
+  - [ ] verify that the clear 'x' button in the replace box clears the 
replacement term
+  - [ ] try replace with an empty replacement term to verify that the search 
term is removed from the data when Replace is clicked
+  - [ ] verify that cancel resets the replace and hides the replace navigation 
buttons
+  - [ ] verify that Redo, Undo and Revert All buttons work as expected after 
making replacements and the counts appear correct
+- [ ] single byte editing
+  - [ ] edit a single byte in the data and verify that the change is reflected 
in the logical and physical views (use legal, illegal values with respect to 
the Display Radix)
+  - [ ] verify that overwrite, insert backward, insert forward, and delete 
work as expected when Delete, Insert, and Overwrite Editing Modes are selected 
in both the Physical and Logical Views
+  - [ ] verify that the values are correct in the Data Inspector and the 
correct offset with respect to the selected Address Radix
+  - [ ] change the values from the Data Inspector and verify that the changes 
are reflected in the Data Inspector and the logical and physical views (use 
legal, illegal values with respect to the Display Radix)
+  - [ ] verify correct values in the Data Inspector when changing the 
endianness
+  - [ ] verify that all the values are editable by clicking on them and that 
the cursor is placed in the edit box with the current value ready to make 
changes
+  - [ ] verify that if the value is changed to a legal value different than 
the original value, the value is updated in the logical and physical views
+  - [ ] verify that the "X" button in the Data Inspector clears the value and 
makes no changes to the data
+  - [ ] verify that Redo, Undo and Revert All buttons work as expected after 
making edits and the counts appear correct
+  - [ ] change the Editing mode to "Overwrite Only" and verify that the insert 
and delete buttons are hidden
+  - [ ] change the Editing mode to "Delete, Insert, and Overwrite" and verify 
that the overwrite and delete buttons are available
+- [ ] multi-byte editing
+  - [ ] click and drag to highlight a range of bytes and verify that the range 
is highlighted in the logical and physical views and that the Data Inspector 
now becomes an editable text box
+  - [ ] verify that the highlighted data appears in the editable text box and 
in the correct Edit Encoding
+  - [ ] verify that the Selection range and size are correct and that the 
range matches the selected Address Radix
+  - [ ] verify that the highlighted data remains correct when scrolling (if 
the navigation hasn't been locked)
+  - [ ] verify that edits can be made with respect to the selected Edit 
Encoding (use legal, illegal values with respect to the Edit Encoding)
+  - [ ] verify that when a legal change is made that the Commit button is 
activated
+  - [ ] verify that data in the edit box can be selected and copied
+  - [ ] verify that data can be pasted in the edit box
+  - [ ] verify that when changing the selected data back to the original value 
that the Commit button is deactivated (there is no change to commit)
+  - [ ] verify that when an illegal change is made that the Commit button is 
deactivated and an appropriate error message is displayed
+  - [ ] verify that when the Commit button is clicked that the changes are 
reflected in the logical and physical views
+  - [ ] verify that Redo, Undo and Revert All buttons work as expected after 
committing changes and the counts appear correct
+  - [ ] verify that changes in the length of the data are reflected in the 
Computed Size (hover over the Computed Size to see the tooltip with the byte 
size)
+  - [ ] verify that clicking the 'X' button in the Edit box clears the 
selection, hides the Edit box, and displays the Data Inspector
+- [ ] server heartbeat information
+  - [ ] verify that the port the server is on matches the one configured (9000 
is the default port)
+  - [ ] verify that the server heartbeat information is displayed in the 
footer when hovering over the dot
+  - [ ] ensure the latency is less than 30ms
+  - [ ] open another Data Editor tab on a different file and verify that the 
Session Count is incremented
+  - [ ] attempt to open the same file as one that is being edited and verify 
that opening the session fails and the Session Count is not incremented, then 
close this tab
+  - [ ] close the other Data Editor tab and verify that the Session Count is 
decremented
+- [ ] screen size
+  - [ ] verify that when the screen is is large enough that the buttons have 
icons and text
+  - [ ] verify that when the screen is smaller, that the buttons have icons 
only, with tooltips
+  - [ ] verify that regardless of button size, the case sensitivity "Aa" 
button in the search box always has a tooltip
+  - [ ] click the "Profile" button and verify that the "Profile as CSV" button 
matches the rest of the buttons
+- [ ] saving
+  - [ ] verify that the file can be saved and that the changes are reflected 
in the file
+  - [ ] verify that the file can be saved as a different file name and that 
the changes are reflected in the new file
+- [ ] themes
+  - [ ] verify that when changing to/from light/dark themes (command palette 
`Preferences: Toggle between Light/Dark Themes`) data editor is updated with 
the matching theme and that everything is readable
+- [ ] final checks
+  - [ ] verify that search works on changed data
+  - [ ] profile the changed data to verify that changes made are reflected in 
the profile
+  - [ ] verify that all changes can be undone using the Revert All button
+  - [ ] verify that closing the last Data Editor tab shuts down the Ωedit 
server (check the process table searching for omega)
+  - [ ] check the log files for errors (e.g., dataEditor-9000.log and 
serv-9000.log in the OS-specific log directory for macOS it's 
~/Library/Application Support/omega_edit/)
+
+## Packaging
+
+- [ ] verify that the packaging script works on all platforms
+- [ ] verify that packages are up-to-date and have no known vulnerabilities
+
+## Documentation
+
+- [ ] version specific documentation is complete and up-to-date 
(https://github.com/apache/daffodil-vscode/wiki)

Reply via email to