Skip to content
This repository was archived by the owner on Mar 8, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
f51e9a2
Enhance dry-run diagnostics and gRPC error handling in run.sh
rez1dent3 Sep 3, 2025
9e93ac2
Refactor temporary file handling and improve resource management
rez1dent3 Sep 3, 2025
d4bd02d
Enhance gRPC testing tool with multi-path support and cleanup
rez1dent3 Sep 4, 2025
aa40c2c
Enhance gRPC testing tool with TLS and PROTO support
rez1dent3 Sep 4, 2025
0af5151
Refactor gRPC client and test orchestration for improved modularity
rez1dent3 Sep 4, 2025
3bb59da
perf: switch summary to perf aggregates; add gperf spans; remove lega…
rez1dent3 Sep 4, 2025
017afc7
Enhance run.sh with improved whitespace handling and modular dry-run …
rez1dent3 Sep 4, 2025
8ed483a
Refactor CPU detection and timeout management for improved modularity
rez1dent3 Sep 4, 2025
610e1c5
Refactor run.sh for improved modularity and whitespace handling
rez1dent3 Sep 4, 2025
50eff15
Refactor error handling and output formatting in run.sh
rez1dent3 Sep 4, 2025
5d0efa7
Refactor run.sh by removing unused pretty printing functions and enha…
rez1dent3 Sep 4, 2025
d35a053
Implement auto-detection of parallel jobs in run.sh and remove unused…
rez1dent3 Sep 4, 2025
7b4dc46
Refactor compatibility stubs and improve whitespace handling
rez1dent3 Sep 4, 2025
c357ebc
Remove process_manager.bats test file and update error validation sou…
rez1dent3 Sep 4, 2025
5066320
Enhance error message validation in file_parser.bats to accommodate v…
rez1dent3 Sep 4, 2025
117551b
Remove examples-config.json and update port configurations across var…
rez1dent3 Sep 4, 2025
e1fbe2e
Enhance run.sh and test assertions handling for improved logging and …
rez1dent3 Sep 10, 2025
e18e4d5
Remove deprecated example files and update documentation for clarity
rez1dent3 Sep 12, 2025
fcd5986
Update grpctestify commands in workflow files to enable verbose logging
rez1dent3 Sep 12, 2025
86228f1
Update gripmock installation version in real-time-chat workflow
rez1dent3 Sep 12, 2025
b0b0c9b
Update gripmock server command in real-time-chat workflow
rez1dent3 Sep 12, 2025
2143d3e
timeout of 10 seconds
rez1dent3 Sep 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 0 additions & 113 deletions .github/workflows/examples-matrix.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/gripmock-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:
cd /tmp/gripmock

# Run grpctestify tests (v1.0.0 with smart defaults)
grpctestify examples
grpctestify examples --verbose

echo "GripMock integration test completed successfully"

Expand Down
81 changes: 81 additions & 0 deletions .github/workflows/real-time-chat-example.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: Real-time Chat Example Testing

on:
push:
branches: [master]
pull_request:
branches: [master, v1-dev]
workflow_dispatch:

jobs:
test-example:
name: Test Real-time Chat Example
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.25'
cache: true

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4'
bundler-cache: true

- name: Install dependencies
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install -y jq
go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
grpcurl --version

- name: Install bashly and generate grpctestify
run: |
set -euo pipefail
gem install bashly
make generate
mkdir -p $HOME/bin
cp grpctestify.sh $HOME/bin/grpctestify
echo "$HOME/bin" >> $GITHUB_PATH

- name: Verify grpctestify installation
run: |
set -euo pipefail
grpctestify --version

- name: Start GripMock server
run: |
set -euo pipefail
go install github.com/bavix/gripmock/v3@latest
cd examples/basic-examples/real-time-chat
gripmock -s stubs/ server/ &
echo $! > gripmock.pid

# Wait for server to start and verify it's ready
gripmock check -t 10s

- name: Test grpctestify with real-time-chat example
run: |
set -euo pipefail
cd examples/basic-examples/real-time-chat
grpctestify tests/ --verbose
echo "Real-time chat example test completed successfully"

- name: Cleanup GripMock server
if: always()
run: |
set -euo pipefail
cd examples/basic-examples/real-time-chat || exit 0
if [ -f gripmock.pid ]; then
pid=$(cat gripmock.pid)
if kill -0 "$pid" 2>/dev/null; then
kill "$pid"
fi
rm -f gripmock.pid
fi
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,6 @@ examples/**/server/*.pid

# Bashly generated output
grpctestify.sh

# Local plan, never commit
PLAN.md
37 changes: 19 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@ grpctestify v1.0.0
./grpctestify.sh test_case.gctf

# Directory mode (recursive)
./grpctestify.sh examples/scenarios/
./grpctestify.sh examples/basic-examples/real-time-chat/tests/

# Parallel execution with progress
./grpctestify.sh examples/scenarios/ --parallel 4 --progress=dots
./grpctestify.sh examples/basic-examples/real-time-chat/tests/ --parallel 4 --progress=dots

# Verbose output
./grpctestify.sh --verbose examples/scenarios/
./grpctestify.sh --verbose examples/basic-examples/real-time-chat/tests/

# Disable colors
./grpctestify.sh --no-color test_case.gctf
Expand Down Expand Up @@ -292,18 +292,18 @@ grpctestify/
├── bashly.yml # Build configuration
├── Makefile # Build and test automation
├── src/ # Modular source code
│ ├── lib/ # Core libraries
│ ├── core/ # Application logic
│ ├── lib/ # Core libraries and plugins
│ ├── commands/ # Command implementations
│ └── test/ # Test framework
│ └── root_command.sh # CLI root command
├── examples/ # Test data and examples
│ ├── scenarios/ # .gctf test files organized by type
│ ├── contracts/ # Protocol buffer definitions
│ ├── fixtures/ # Proto files and stubs
│ ├── servers/ # Test server implementations
│ └── benchmarks/ # Performance benchmarks

└── index.html # Web-based .gctf generator
│ └── basic-examples/ # Basic example categories
│ └── real-time-chat/ # Real-time chat example
│ ├── server/ # Proto definitions and stubs
│ ├── stubs/ # YAML stub files for gripmock
│ └── tests/ # .gctf test files (9 comprehensive tests)
├── docs/ # Documentation
├── plugins/ # Built-in plugins
└── tests/ # Test framework and helpers
```

## 🛠️ Development
Expand Down Expand Up @@ -417,12 +417,13 @@ Features:

## 📚 Examples

Check out the comprehensive examples in `examples/scenarios/`:
Check out the comprehensive examples in `examples/basic-examples/real-time-chat/tests/`:

- **Basic tests**: Simple unary calls
- **Stream tests**: All streaming patterns
- **Edge cases**: Error handling and validation
- **New features**: Latest functionality demonstrations
- **Basic tests**: Simple unary calls with message sending
- **Response validation**: Exact matching and partial responses
- **Advanced assertions**: jq-based validation with regex, contains, length
- **Options testing**: Timeout, partial matching, and dry-run functionality
- **Comprehensive testing**: All grpctestify capabilities in one example

## 🤝 Contributing

Expand Down
Loading
Loading