93 lines
No EOL
2.4 KiB
Bash
93 lines
No EOL
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
# Basic test script for apt-layer C implementation
|
|
|
|
set -e
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Test counter
|
|
TESTS_PASSED=0
|
|
TESTS_FAILED=0
|
|
|
|
# Test function
|
|
run_test() {
|
|
local test_name="$1"
|
|
local command="$2"
|
|
local expected_exit="$3"
|
|
|
|
echo -e "${YELLOW}Running test: $test_name${NC}"
|
|
echo "Command: $command"
|
|
|
|
# Run the command
|
|
if eval "$command" > /dev/null 2>&1; then
|
|
exit_code=0
|
|
else
|
|
exit_code=$?
|
|
fi
|
|
|
|
# Check result
|
|
if [ "$exit_code" -eq "$expected_exit" ]; then
|
|
echo -e "${GREEN}✓ Test passed: $test_name${NC}"
|
|
((TESTS_PASSED++))
|
|
else
|
|
echo -e "${RED}✗ Test failed: $test_name (expected $expected_exit, got $exit_code)${NC}"
|
|
((TESTS_FAILED++))
|
|
fi
|
|
echo
|
|
}
|
|
|
|
# Check if binary exists
|
|
if [ ! -f "../bin/apt-layer" ]; then
|
|
echo -e "${RED}Error: apt-layer binary not found. Please build the project first.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Starting apt-layer C implementation tests..."
|
|
echo "=========================================="
|
|
echo
|
|
|
|
# Test 1: Help command
|
|
run_test "Help command" "../bin/apt-layer --help" 0
|
|
|
|
# Test 2: Version command
|
|
run_test "Version command" "../bin/apt-layer --version" 0
|
|
|
|
# Test 3: Invalid arguments
|
|
run_test "Invalid arguments" "../bin/apt-layer --invalid-option" 1
|
|
|
|
# Test 4: Missing arguments for layer creation
|
|
run_test "Missing arguments for layer creation" "../bin/apt-layer" 1
|
|
|
|
# Test 5: Missing arguments for container
|
|
run_test "Missing arguments for container" "../bin/apt-layer --container" 1
|
|
|
|
# Test 6: Missing arguments for oci-export
|
|
run_test "Missing arguments for oci-export" "../bin/apt-layer --oci-export" 1
|
|
|
|
# Test 7: List command (should fail without OSTree repo)
|
|
run_test "List command without repo" "../bin/apt-layer --list" 2
|
|
|
|
# Test 8: Info command without branch
|
|
run_test "Info command without branch" "../bin/apt-layer --info" 1
|
|
|
|
# Test 9: Rollback command without branch
|
|
run_test "Rollback command without branch" "../bin/apt-layer --rollback" 1
|
|
|
|
echo "=========================================="
|
|
echo "Test Results:"
|
|
echo -e "${GREEN}Passed: $TESTS_PASSED${NC}"
|
|
echo -e "${RED}Failed: $TESTS_FAILED${NC}"
|
|
echo "Total: $((TESTS_PASSED + TESTS_FAILED))"
|
|
|
|
if [ $TESTS_FAILED -eq 0 ]; then
|
|
echo -e "${GREEN}All tests passed!${NC}"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}Some tests failed!${NC}"
|
|
exit 1
|
|
fi |