spark: add artifact documentation for IPv4 validator
This commit is contained in:
1 parent
b796a5a704
commit
a5d2e73fe4
1 file changed
+55
@@ -0,0 +1,55 @@
|
||||
# IPv4 Address Validator Artifact
|
||||
|
||||
## Files Created
|
||||
|
||||
1. **validate_ipv4.sh** - Bash script that validates IPv4 addresses
|
||||
- Uses regex to match 4 octets (1-3 digits each)
|
||||
- Validates each octet is in range 0-255
|
||||
- Returns exit code 0 for valid, 1 for invalid
|
||||
- Outputs "valid" or "invalid"
|
||||
|
||||
2. **test_ipv4_validator.sh** - Test suite with 24 test cases
|
||||
- 9 valid IPv4 addresses
|
||||
- 15 invalid edge cases (out of range, malformed, etc.)
|
||||
|
||||
## Test Results
|
||||
|
||||
```
|
||||
=== IPv4 Validator Test Suite ===
|
||||
|
||||
PASS: '192.168.1.1' -> valid (exit 0)
|
||||
PASS: '0.0.0.0' -> valid (exit 0)
|
||||
PASS: '255.255.255.255' -> valid (exit 0)
|
||||
PASS: '10.0.0.1' -> valid (exit 0)
|
||||
PASS: '172.16.0.1' -> valid (exit 0)
|
||||
PASS: '8.8.8.8' -> valid (exit 0)
|
||||
PASS: '127.0.0.1' -> valid (exit 0)
|
||||
PASS: '1.2.3.4' -> valid (exit 0)
|
||||
PASS: '200.200.200.200' -> valid (exit 0)
|
||||
PASS: '256.1.1.1' -> invalid (exit 1)
|
||||
PASS: '1.2.3' -> invalid (exit 1)
|
||||
PASS: '1.2.3.4.5' -> invalid (exit 1)
|
||||
PASS: 'a.b.c.d' -> invalid (exit 1)
|
||||
PASS: '192.168.1.300' -> invalid (exit 1)
|
||||
PASS: '999.999.999.999' -> invalid (exit 1)
|
||||
PASS: '192.168.1.256' -> invalid (exit 1)
|
||||
PASS: '255.255.255.256' -> invalid (exit 1)
|
||||
PASS: '-1.2.3.4' -> invalid (exit 1)
|
||||
PASS: '192.168.1.-1' -> invalid (exit 1)
|
||||
PASS: '' -> invalid (exit 1)
|
||||
PASS: '192.168.1.1.' -> invalid (exit 1)
|
||||
PASS: '.192.168.1.1' -> invalid (exit 1)
|
||||
PASS: '192.168.1.1a' -> invalid (exit 1)
|
||||
|
||||
=== Results: 0 failures ===
|
||||
ALL TESTS PASSED
|
||||
```
|
||||
|
||||
## Implementation Details
|
||||
|
||||
The validator uses:
|
||||
1. String regex `^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$` to match the format
|
||||
2. Bash BASH_REMATCH array to capture octets
|
||||
3. Arithmetic comparison `(( i > 255 ))` to validate octet ranges
|
||||
|
||||
This approach correctly handles edge cases like leading zeros, negative numbers, and malformed addresses.
|
||||
Reference in new issue
Block a user