Test examples (#87)

* Fixing simple_login example

* Adds script that tests the simple_login example

* Add GH action to run said script

Co-authored-by: Kevin Lewi <[email protected]>
This commit is contained in:
François Garillot
2020-11-16 11:41:06 -08:00
committed by GitHub
co-authored by Kevin Lewi
parent 2d7b4292ff
commit f18eaea8cf
2 changed files with 100 additions and 0 deletions
+20
View File
@@ -35,6 +35,26 @@ jobs:
command: test command: test
args: --no-default-features --features ${{ matrix.backend_feature }} args: --no-default-features --features ${{ matrix.backend_feature }}
simple-login-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
name: test simple_login command-line example
steps:
- name: install expect
run: sudo apt-get install expect
- name: Checkout sources
uses: actions/checkout@v2
- name: install rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
components: rustfmt, clippy
- name: Run expect (which then runs cargo run)
run: expect -f scripts/simple_login.exp
cross-test: cross-test:
name: Test on ${{ matrix.target }} (using cross) name: Test on ${{ matrix.target }} (using cross)
runs-on: ubuntu-latest runs-on: ubuntu-latest
+80
View File
@@ -0,0 +1,80 @@
#!/bin/expect -f
set timeout 1
spawn cargo run --example simple_login
match_max 100000
sleep 1
expect "*
\r
Currently registered usernames: \\\[\\\]\r
\r
Enter an option (1 or 2):\r
1) Register a user\r
2) Login as a user\r
\r
"
sleep .1
send -- "1\r"
expect "Username: \r"
send -- "foo\r"
expect "Password: \r"
send -- "bar\r"
expect "*
\r
Currently registered usernames: \\\[\"foo\"\\\]\r
\r
Enter an option (1 or 2):\r
1) Register a user\r
2) Login as a user\r
\r
"
sleep .1
send -- "2\r"
expect "Username: \r"
send -- "baz\r"
expect "Password: \r"
send -- "quux\r"
expect "*Error: Could not find username registered\r
\r
Currently registered usernames: \\\[\"foo\"\\\]\r
\r
Enter an option (1 or 2):\r
1) Register a user\r
2) Login as a user\r
\r
"
sleep .1
send -- "2\r"
expect "Username: \r"
send -- "foo\r"
expect "Password: \r"
send -- "baz\r"
expect "*Incorrect password, please try again.\r
\r
Currently registered usernames: \\\[\"foo\"\\\]\r
\r
Enter an option (1 or 2):\r
1) Register a user\r
2) Login as a user\r
\r
"
sleep .1
send -- "2\r"
expect "Username: \r"
send -- "foo\r"
expect "Password: \r"
send -- "bar\r"
expect "*
\r
*Login success!\r
\r
Currently registered usernames: \\\[\"foo\"\\\]\r
\r
Enter an option (1 or 2):\r
1) Register a user\r
2) Login as a user\r
\r
"
sleep .1
send -- ""
expect eof