File tree Expand file tree Collapse file tree 3 files changed +50
-6
lines changed Expand file tree Collapse file tree 3 files changed +50
-6
lines changed Original file line number Diff line number Diff line change 4747 run : make program CARGOFLAGS="--verbose"
4848 - name : Run tests
4949 run : make check CARGOFLAGS="--verbose"
50+ - name : Check program invocation
51+ run : tests/test-invocations.sh target/release/zram-generator
5052
5153 rustfmt :
5254 name : rustfmt
Original file line number Diff line number Diff line change @@ -49,13 +49,13 @@ fn command() -> clap::Command {
4949fn get_opts ( ) -> Opts {
5050 let opts = command ( ) . get_matches ( ) ;
5151
52- if let Some ( val) = opts. get_one :: < & str > ( "setup-device" ) {
53- Opts :: SetupDevice ( val. to_string ( ) )
54- } else if let Some ( val) = opts. get_one :: < & str > ( "reset-device" ) {
55- Opts :: ResetDevice ( val. to_string ( ) )
52+ if let Some ( val) = opts. get_one :: < String > ( "setup-device" ) {
53+ Opts :: SetupDevice ( val. clone ( ) )
54+ } else if let Some ( val) = opts. get_one :: < String > ( "reset-device" ) {
55+ Opts :: ResetDevice ( val. clone ( ) )
5656 } else {
57- let val = opts. get_one :: < & str > ( "dir" ) . expect ( "clap invariant" ) ;
58- Opts :: GenerateUnits ( val. to_string ( ) )
57+ let val = opts. get_one :: < String > ( "dir" ) . expect ( "clap invariant" ) ;
58+ Opts :: GenerateUnits ( val. clone ( ) )
5959 }
6060}
6161
Original file line number Diff line number Diff line change 1+ # SPDX-License-Identifier: MIT
2+ set -e
3+
4+ program=${1:? }
5+
6+ dir=$( mktemp -d ' zram-test.XXXXXX' )
7+ trap ' rm -r $dir' EXIT
8+
9+ set -x
10+
11+ $program --help
12+ $program --version
13+
14+ # This should pass
15+ mkdir $dir /{a,b,c}
16+ $program $dir /{a,b,c}
17+
18+ # Those should fail with option parsing error (2)
19+ set +e
20+ $program dir1 dir2 dir3 dir4
21+ ret=$?
22+ set -e
23+ test $ret -eq 2
24+
25+ set +e
26+ $program dir1 --setup-device
27+ ret=$?
28+ set -e
29+ test $ret -eq 2
30+
31+ # Those should fail because the device doesn't exist (1)
32+ set +e
33+ $program --setup-device /no/such/file/or/directory
34+ ret=$?
35+ set -e
36+ test $ret -eq 1
37+
38+ set +e
39+ $program --reset-device /no/such/file/or/directory
40+ ret=$?
41+ set -e
42+ test $ret -eq 1
You can’t perform that action at this time.
0 commit comments