Skip to content

Latest commit

 

History

History
96 lines (83 loc) · 3.65 KB

File metadata and controls

96 lines (83 loc) · 3.65 KB

🧪 HOWK Shell: Complete A to Z Test Suite

This file contains a comprehensive list of commands to test every single feature implemented in the HOWK shell. Follow these in order for a full system validation.


1. Core Builtins & Navigation

Test basic shell movement and information.

help                # Display available builtins
history             # Show command history
pwd                 # Check current directory (via external)
ls                  # Basic external command
cd Sample           # Change directory to Sample/
ls                  # Verify directory change
cd ..               # Return to root
cd                  # Go to $HOME
cd -                # (Note: HOWK might not support -, but good to test)

2. File Redirection

Test how the shell handles standard I/O hijacking.

echo "Hello HOWK" > test.txt        # Overwrite redirection
cat test.txt                         # Verify content
echo "Line 2" >> test.txt            # Append redirection
cat test.txt                         # Verify both lines
wc -l < test.txt                     # Input redirection
cat < test.txt > copy.txt            # Simultaneous < and >
ls -la > files.txt                   # Redirecting output of a complex command

3. Pipelines

Test Inter-Process Communication using kernel buffers.

ls -la | grep ".c"                   # Single pipe
ls -la | grep ".c" | wc -l           # Double pipe
cat Makefile | grep "gcc" | sort -r  # Triple pipe
ls | grep "src" | wc -c > count.txt  # Pipeline + Redirection

4. Background Job Management (Basic)

Test non-blocking execution and process tracking.

sleep 10 BG                          # Run in background
JOB                                  # Check the job tracker list
onTop 1                              # Bring job 1 to foreground (wait for it)
sleep 20 BG                          # Start another
# Wait 2 seconds...
# Press Ctrl+Z (if supported) or just let it run
onBottom 2                           # Ensure it continues in background

5. Threadpool & Priority Scheduling

Test the advanced resource management features.

tpool 2                              # Initialize pool with 2 workers
JOB                                  # See pool status

# Fill the pool with two 10s tasks
sleep 10 BG                          # Job 1 (Priority 1, 1 thread)
sleep 10 BG                          # Job 2 (Priority 1, 1 thread)

# These will now QUEUE up
sleep 5 priority=2 BG                # Job 3 (Low Priority)
sleep 5 priority=0 BG                # Job 4 (High Priority)

JOB                                  # Observe Job 4 is ABOVE Job 3 in the queue
# Wait for workers to finish... 
# Job 4 will be picked up BEFORE Job 3!

6. Resource-Aware Allocation

Test the shell's ability to manage thread slots.

tpool 4                              # 4 workers available
sleep 10 threads=4 BG                # This job claims ALL 4 threads
ls threads=1 BG                      # This job will WAIT because slots are 0
JOB                                  # See THR: 4 and T-ID showing busy status

7. Edge Cases & Error Handling

Test how the shell reacts to bad input.

non_existent_command                 # Should show 'execvp failed'
ls |                                 # Should show parse error
cat < missing_file.txt               # Should show redirection error
cd /non/existent/path                # Should show chdir error
tpool -1                             # Should show invalid thread count
JOB                                  # (With no jobs) should say "No active jobs"

8. Clean Exit

exit                                 # Shut down threadpool and exit shell