-
Notifications
You must be signed in to change notification settings - Fork 23
127 lines (126 loc) · 7.41 KB
/
interop_tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
name: Interop Tests
on: [pull_request]
env:
CARGO_TERM_COLOR: always
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
jobs:
BuildAndTest:
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
path: mls
- name: Clone test runner
uses: actions/checkout@v4
with:
repository: mlswg/mls-implementations
ref: 7066309c555bfc11fbc74f8288a8563c927637b2
path: interop
- uses: arduino/setup-protoc@v2
with:
version: "25.x"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build test runner
working-directory: interop/interop
run: |
cp -r ../../mls-rs/test_harness_integration/configs mls-rs-configs
go env -w GOPROXY=direct
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT:$GOPATH:$GOBIN
GOFLAGS=-mod=mod go generate ./...
make test-runner/test-runner
- name: Test interop; full feature set with itself
run: |
cd mls-rs/test_harness_integration
cargo build
cargo run -- --port 50001 &
cd ../../interop/interop
for config in `ls mls-rs-configs | sed -e "s/mls-rs-configs\///"`; do >&2 echo $config && test-runner/test-runner --client localhost:50001 --config mls-rs-configs/$config ; done > /dev/null
kill %1
- name: Test interop; full feature with "bare bones"
run: |
cd mls-rs/test_harness_integration
cargo run -- --port 50001 &
cargo build --no-default-features
cargo run --no-default-features -- --port 50002 &
cd ../../interop/interop
test-runner/test-runner --client localhost:50001 --client localhost:50002 --suite 1 --public --config mls-rs-configs/bare_bones.json > /dev/null
kill %1
kill %2
- name: Test interop; full feature with "no tree_index"
run: |
cd mls-rs/test_harness_integration
cargo run -- --port 50001 &
cargo build --no-default-features --features private_message,prior_epoch,out_of_order,psk,custom_proposal,by_ref_proposal
cargo run --no-default-features --features private_message,prior_epoch,out_of_order,psk,custom_proposal,by_ref_proposal -- --port 50002 &
cd ../../interop/interop
for config in `ls mls-rs-configs | sed -e "s/mls-rs-configs\///"`; do >&2 echo $config && test-runner/test-runner --client localhost:50001 --client localhost:50002 --suite 1 --config mls-rs-configs/$config ; done > /dev/null
kill %1
kill %2
- name: Test interop; full feature with "no private_message"
run: |
cd mls-rs/test_harness_integration
cargo run -- --port 50001 &
cargo build --no-default-features --features tree_index,prior_epoch,out_of_order,psk,custom_proposal,by_ref_proposal
cargo run --no-default-features --features tree_index,prior_epoch,out_of_order,psk,custom_proposal,by_ref_proposal -- --port 50002 &
cd ../../interop/interop
for config in `ls mls-rs-configs | grep -v "application" | sed -e "s/mls-rs-configs\///"`; do >&2 echo $config && test-runner/test-runner --client localhost:50001 --client localhost:50002 --public --suite 1 --config mls-rs-configs/$config ; done > /dev/null
kill %1
kill %2
- name: Test interop; full feature with "no prior_epoch"
run: |
cd mls-rs/test_harness_integration
cargo run -- --port 50001 &
cargo build --no-default-features --features tree_index,private_message,out_of_order,psk,custom_proposal,by_ref_proposal
cargo run --no-default-features --features tree_index,private_message,out_of_order,psk,custom_proposal,by_ref_proposal -- --port 50002 &
cd ../../interop/interop
for config in `ls mls-rs-configs | grep -Ev "(application_out_of_order_across)|(psk)" | sed -e "s/mls-rs-configs\///"`; do >&2 echo $config && test-runner/test-runner --client localhost:50001 --client localhost:50002 --suite 1 --config mls-rs-configs/$config ; done > /dev/null
kill %1
kill %2
- name: Test interop; full feature with "no out_of_order"
run: |
cd mls-rs/test_harness_integration
cargo run -- --port 50001 &
cargo build --no-default-features --features tree_index,private_message,prior_epoch,psk,custom_proposal,by_ref_proposal
cargo run --no-default-features --features tree_index,private_message,prior_epoch,psk,custom_proposal,by_ref_proposal -- --port 50002 &
cd ../../interop/interop
for config in `ls mls-rs-configs | grep -v "application_out_of_order" | sed -e "s/mls-rs-configs\///"`; do >&2 echo $config && test-runner/test-runner --client localhost:50001 --client localhost:50002 --suite 1 --config mls-rs-configs/$config ; done > /dev/null
kill %1
kill %2
- name: Test interop; full feature with "no psk"
run: |
cd mls-rs/test_harness_integration
cargo run -- --port 50001 &
cargo build --no-default-features --features tree_index,private_message,prior_epoch,out_of_order,custom_proposal,by_ref_proposal
cargo run --no-default-features --features tree_index,private_message,prior_epoch,out_of_order,custom_proposal,by_ref_proposal -- --port 50002 &
cd ../../interop/interop
for config in `ls mls-rs-configs | grep -Ev "(psk)|(branch)|(reinit)" | sed -e "s/mls-rs-configs\///"`; do >&2 echo $config && test-runner/test-runner --client localhost:50001 --client localhost:50002 --suite 1 --config mls-rs-configs/$config ; done > /dev/null
kill %1
kill %2
- name: Test interop; full feature with "no custom_proposal"
run: |
cd mls-rs/test_harness_integration
cargo run -- --port 50001 &
cargo build --no-default-features --features tree_index,private_message,prior_epoch,out_of_order,psk,by_ref_proposal
cargo run --no-default-features --features tree_index,private_message,prior_epoch,out_of_order,psk,by_ref_proposal -- --port 50002 &
cd ../../interop/interop
for config in `ls mls-rs-configs | sed -e "s/mls-rs-configs\///"`; do >&2 echo $config && test-runner/test-runner --client localhost:50001 --client localhost:50002 --suite 1 --config mls-rs-configs/$config ; done > /dev/null
kill %1
kill %2
- name: Test interop; full feature with "no by_ref_proposal"
run: |
cd mls-rs/test_harness_integration
cargo run -- --port 50001 &
cargo build --no-default-features --features tree_index,private_message,prior_epoch,out_of_order,psk,custom_proposal
cargo run --no-default-features --features tree_index,private_message,prior_epoch,out_of_order,psk,custom_proposal -- --port 50002 &
cd ../../interop/interop
for config in `ls mls-rs-configs | grep -E "(application)|(commit_by_value)|(branch)|(welcome_join)" | sed -e "s/mls-rs-configs\///"`; do >&2 echo $config && test-runner/test-runner --client localhost:50001 --client localhost:50002 --suite 1 --config mls-rs-configs/$config ; done > /dev/null
kill %1
kill %2