-
Notifications
You must be signed in to change notification settings - Fork 249
/
Copy pathconfig.feature
189 lines (160 loc) · 9.36 KB
/
config.feature
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
@config
Feature: Test configuration settings
User checks whether CRC `config set` command works as expected
in conjunction with `crc setup` and `crc start` commands.
# SETTINGS
Scenario Outline: CRC config checks (settings)
When setting config property "<property>" to value "<value1>" succeeds
Then file "crc.json" exists in CRC home folder
And "JSON" config file "crc.json" in CRC home folder contains key "<property>" with value matching "<value1>"
And setting config property "<property>" to value "<value2>" fails
When unsetting config property "<property>" succeeds
Then "JSON" config file "crc.json" in CRC home folder does not contain key "<property>"
# always return to default values
@darwin
Examples: Config settings on Mac
| property | value1 | value2 |
| cpus | 5 | 3 |
| memory | 10753 | 4096 |
| nameserver | 120.0.0.1 | 999.999.999.999 |
| pull-secret-file | /etc | /nonexistent-file |
@linux
Examples: Config settings on Linux
| property | value1 | value2 |
| cpus | 5 | 3 |
| memory | 10753 | 4096 |
| nameserver | 120.0.0.1 | 999.999.999.999 |
| pull-secret-file | /etc | /nonexistent-file |
@windows
Examples: Config settings on Windows
| property | value1 | value2 |
| cpus | 5 | 3 |
| memory | 10753 | 4096 |
| nameserver | 120.0.0.1 | 999.999.999.999 |
| pull-secret-file | /Users | /nonexistent-file |
@linux @darwin @windows
Scenario: CRC config checks (bundle version)
Given executing single crc setup command succeeds
When setting config property "bundle" to value "current bundle" succeeds
And "JSON" config file "crc.json" in CRC home folder contains key "bundle" with value matching "current bundle"
And setting config property "bundle" to value "/path/to/nonexistent/bundle/crc_hypervisor_version.tar.xz" fails
When unsetting config property "bundle" succeeds
Then "JSON" config file "crc.json" in CRC home folder does not contain key "bundle"
@linux @darwin @windows
Scenario: CRC config checks (update check)
When setting config property "disable-update-check" to value "true" succeeds
Then "JSON" config file "crc.json" in CRC home folder contains key "disable-update-check" with value matching "true"
When setting config property "disable-update-check" to value "false" succeeds
Then "JSON" config file "crc.json" in CRC home folder does not contain key "disable-update-check"
# SKIP
Scenario Outline: CRC config checks (skips)
When setting config property "<property>" to value "<value1>" succeeds
And "JSON" config file "crc.json" in CRC home folder contains key "<property>" with value matching "<value1>"
When executing crc setup command succeeds
Then stderr should contain "Skipping above check..."
When setting config property "<property>" to value "<value2>" succeeds
Then "JSON" config file "crc.json" in CRC home folder does not contain key "<property>"
When executing crc setup command succeeds
Then stderr should not contain "Skipping above check..."
@darwin
Examples:
| property | value1 | value2 |
| skip-check-bundle-extracted | true | false |
| skip-check-vfkit-installed | true | false |
| skip-check-root-user | true | false |
@linux
Examples:
| property | value1 | value2 |
| skip-check-bundle-extracted | true | false |
| skip-check-kvm-enabled | true | false |
| skip-check-libvirt-driver | true | false |
| skip-check-libvirt-installed | true | false |
| skip-check-libvirt-running | true | false |
| skip-check-libvirt-version | true | false |
| skip-check-root-user | true | false |
| skip-check-user-in-libvirt-group | true | false |
| skip-check-virt-enabled | true | false |
# the following properties not suit for user notwork
#| skip-check-crc-network | true | false |
#| skip-check-crc-network-active | true | false |
#| skip-check-network-manager-installed | true | false |
#| skip-check-network-manager-running | true | false |
@windows
Examples:
| property | value1 | value2 |
| skip-check-bundle-extracted | true | false |
| skip-check-user-in-crc-users-and-hyperv-admins-group | true | false |
#| skip-check-hyperv-installed | true | false |
#| skip-check-hyperv-switch | true | false |
#| skip-check-administrator-user | true | false |
#| skip-check-windows-version | true | false |
# --------------------------------------
# Linux-specific Scenarios
@linux
Scenario: Missing CRC setup
Given executing single crc setup command succeeds
When executing "rm ~/.crc/bin/crc-driver-libvirt-*" succeeds
Then starting CRC with default bundle fails
And stderr should contain "Preflight checks failed during `crc start`, please try to run `crc setup` first in case you haven't done so yet"
@linux
Scenario: Check network setup and destroy it, then check again
When removing file "crc.json" from CRC home folder succeeds
And executing single crc setup command succeeds
And executing "sudo virsh net-list --name" succeeds
Then stdout contains "default"
@linux @system_network
Scenario: Running `crc setup` with checks enabled restores destroyed network
When setting config property "skip-check-crc-network" to value "false" succeeds
And setting config property "skip-check-crc-network-active" to value "false" succeeds
Then executing single crc setup command succeeds
And executing "sudo virsh net-list --name" succeeds
And stdout contains "crc"
@linux @system_network
Scenario: Running `crc start` without `crc setup` and with checks disabled fails when network destroyed
# Destroy network again
When executing "sudo virsh net-undefine crc && sudo virsh net-destroy crc" succeeds
And executing "sudo virsh net-list --name" succeeds
Then stdout should not contain "crc"
# Disable checks
When setting config property "skip-check-crc-network" to value "true" succeeds
And setting config property "skip-check-crc-network-active" to value "true" succeeds
# Start CRC
Then starting CRC with default bundle fails
And stderr contains "Network not found: no network with matching name 'crc'"
@linux
Scenario: Clean-up
# Remove the config file
When removing file "crc.json" from CRC home folder succeeds
And executing crc setup command succeeds
Then stderr should not contain "Skipping above check"
@linux @darwin @windows
Scenario: CRC config set and get preset property (default cases)
When setting config property "preset" to value "openshift" succeeds
And "JSON" config file "crc.json" in CRC home folder does not contain key "preset"
When getting config property "preset" succeeds
And stdout should contain "Configuration property 'preset' is not set"
And stdout should contain "openshift"
When unsetting config property "preset" succeeds
And stdout should contain "Successfully unset configuration property 'preset'"
And "JSON" config file "crc.json" in CRC home folder does not contain key "preset"
Scenario: CRC config set and get preset property (positive cases)
When setting config property "preset" to value "<preset-value>" succeeds
And "JSON" config file "crc.json" in CRC home folder contains key "preset" with value matching "<preset-value>"
When getting config property "preset" succeeds
And stdout should contain "<preset-value>"
When unsetting config property "preset" succeeds
And stdout should contain "Successfully unset configuration property 'preset'"
And "JSON" config file "crc.json" in CRC home folder does not contain key "preset"
@linux @darwin @windows
Examples: Config property preset setting positive
| preset-value |
| microshift |
| okd |
Scenario: CRC config set preset (negtive cases)
When setting config property "preset" to value "<preset-value>" fails
And stderr should contain "reason: Unknown preset"
@linux @darwin @windows
Examples: Config property getting
| preset-value |
| podman |
| others |