add sanity tests and gating.yaml (same as c9s)
This commit is contained in:
		
							parent
							
								
									cfcda5b5bb
								
							
						
					
					
						commit
						c5149ba237
					
				
							
								
								
									
										6
									
								
								gating.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								gating.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
--- !Policy
 | 
			
		||||
product_versions:
 | 
			
		||||
  - rhel-10
 | 
			
		||||
decision_context: osci_compose_gate
 | 
			
		||||
rules:
 | 
			
		||||
  - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
 | 
			
		||||
							
								
								
									
										64
									
								
								tests/sanity/acd-test.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										64
									
								
								tests/sanity/acd-test.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,64 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# SPDX-License-Identifier: GPL-2.0
 | 
			
		||||
#
 | 
			
		||||
# Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
 | 
			
		||||
 | 
			
		||||
# ┌─────────────────────┐    ┌─────────────────────┐
 | 
			
		||||
# │   $netns0           │    │   $netns1           │
 | 
			
		||||
# │                     │    │                     │
 | 
			
		||||
# │┌────────┐           │    │           ┌────────┐│
 | 
			
		||||
# ││  eth0  │───────────┼────┼───────────│  eth0  ││
 | 
			
		||||
# │├────────┴──────────┐│    │┌──────────┴────────┤│
 | 
			
		||||
# ││192.0.2.1/24       ││    ││192.0.2.1/24       ││
 | 
			
		||||
# ││ping               ││    ││ACD daemon         ││
 | 
			
		||||
# │└───────────────────┘│    │└───────────────────┘│
 | 
			
		||||
# └─────────────────────┘    └─────────────────────┘
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
exec 3>&1
 | 
			
		||||
export LANG=C
 | 
			
		||||
netns0="ell-test-$$-0"
 | 
			
		||||
netns1="ell-test-$$-1"
 | 
			
		||||
pretty() { echo -e "\x1b[32m\x1b[1m[+] ${1:+NS$1: }${2}\x1b[0m" >&3; }
 | 
			
		||||
pp() { pretty "" "$*"; "$@"; }
 | 
			
		||||
maybe_exec() { if [[ $BASHPID -eq $$ ]]; then "$@"; else exec "$@"; fi; }
 | 
			
		||||
n0() { pretty 0 "$*"; maybe_exec ip netns exec $netns0 "$@"; }
 | 
			
		||||
n1() { pretty 1 "$*"; maybe_exec ip netns exec $netns1 "$@"; }
 | 
			
		||||
ip0() { pretty 0 "ip $*"; ip -n $netns0 "$@"; }
 | 
			
		||||
ip1() { pretty 1 "ip $*"; ip -n $netns1 "$@"; }
 | 
			
		||||
slp() { read -t "$1" -N 1 || true; }
 | 
			
		||||
 | 
			
		||||
do_cleanup() {
 | 
			
		||||
	set +e
 | 
			
		||||
	exec 2>/dev/null
 | 
			
		||||
	pp pkill ell-acd-client
 | 
			
		||||
	pp ip netns del $netns1
 | 
			
		||||
	pp ip netns del $netns0
 | 
			
		||||
	pp rm /tmp/tmp/acd-$$.log
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
trap do_cleanup EXIT
 | 
			
		||||
 | 
			
		||||
pkill ell-acd-client || true
 | 
			
		||||
ip netns del $netns0 2>/dev/null || true
 | 
			
		||||
ip netns del $netns1 2>/dev/null || true
 | 
			
		||||
 | 
			
		||||
pp ip netns add $netns0
 | 
			
		||||
pp ip netns add $netns1
 | 
			
		||||
 | 
			
		||||
ip0 link set dev lo up
 | 
			
		||||
ip0 link add name eth0 type veth peer name eth0 netns $netns1
 | 
			
		||||
ip0 link set dev eth0 up
 | 
			
		||||
ip1 link set dev lo up
 | 
			
		||||
ip1 link set dev eth0 up
 | 
			
		||||
idx="$(ip1 -j link show dev eth0 | jq '.[0].ifindex')"
 | 
			
		||||
n1 ./ell-acd-client $idx 192.0.2.1 -d -D defend -n 1>/tmp/acd-$$.log 2>&1 &
 | 
			
		||||
slp 5
 | 
			
		||||
ip0 address add dev eth0 192.0.2.1/24
 | 
			
		||||
n0 ping 192.0.2.2 -I eth0 -c5 -w5 -q || true
 | 
			
		||||
slp 5
 | 
			
		||||
pp cat /tmp/acd-$$.log
 | 
			
		||||
pp grep 'IP 192.0.2.1 has been lost' /tmp/acd-$$.log
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										17
									
								
								tests/tests.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								tests/tests.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
- hosts: localhost
 | 
			
		||||
  tags:
 | 
			
		||||
  - classic
 | 
			
		||||
  roles:
 | 
			
		||||
  - role: standard-test-source
 | 
			
		||||
  - role: standard-test-basic
 | 
			
		||||
    required_packages:
 | 
			
		||||
    - gcc
 | 
			
		||||
    - jq
 | 
			
		||||
    - iproute
 | 
			
		||||
    tests:
 | 
			
		||||
    - build-tests:
 | 
			
		||||
        dir: ./source/examples
 | 
			
		||||
        run: gcc acd-client.c -I.. -lell -o ell-acd-client && cp ../../sanity/acd-test.sh .
 | 
			
		||||
    - sanity-tests:
 | 
			
		||||
        dir: ./source/examples
 | 
			
		||||
        run: ./acd-test.sh
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user