TestCmdTest demonstrates and verifies the test functions for end-to-end testing of rclone
(t *testing.T)
| 150 | |
| 151 | // TestCmdTest demonstrates and verifies the test functions for end-to-end testing of rclone |
| 152 | func TestCmdTest(t *testing.T) { |
| 153 | createTestEnvironment(t) |
| 154 | |
| 155 | // Test simple call and output from rclone |
| 156 | out, err := rclone("version") |
| 157 | t.Log("rclone version\n" + out) |
| 158 | if assert.NoError(t, err) { |
| 159 | assert.Contains(t, out, "rclone v") |
| 160 | assert.Contains(t, out, "version: ") |
| 161 | assert.NotContains(t, out, "Error:") |
| 162 | assert.NotContains(t, out, "--help") |
| 163 | assert.NotContains(t, out, " DEBUG : ") |
| 164 | assert.Regexp(t, "rclone\\s+v\\d+\\.\\d+", out) // rclone v_.__ |
| 165 | } |
| 166 | |
| 167 | // Test multiple arguments and DEBUG output |
| 168 | out, err = rclone("version", "-vv") |
| 169 | if assert.NoError(t, err) { |
| 170 | assert.Contains(t, out, "rclone v") |
| 171 | assert.Contains(t, out, " DEBUG : ") |
| 172 | } |
| 173 | |
| 174 | // Test error and error output |
| 175 | out, err = rclone("version", "--provoke-an-error") |
| 176 | if assert.Error(t, err) { |
| 177 | assert.Contains(t, err.Error(), "exit status 2") |
| 178 | assert.Contains(t, out, "Error: unknown flag") |
| 179 | } |
| 180 | |
| 181 | // Test effect of environment variable |
| 182 | env := "RCLONE_LOG_LEVEL=DEBUG" |
| 183 | out, err = rcloneEnv(env, "version") |
| 184 | if assert.NoError(t, err) { |
| 185 | assert.Contains(t, out, "rclone v") |
| 186 | assert.Contains(t, out, " DEBUG : ") |
| 187 | } |
| 188 | |
| 189 | // Test effect of multiple environment variables, including one with , |
| 190 | env = "RCLONE_LOG_LEVEL=DEBUG;RCLONE_LOG_FORMAT=date,shortfile;RCLONE_STATS=173ms" |
| 191 | out, err = rcloneEnv(env, "version") |
| 192 | if assert.NoError(t, err) { |
| 193 | assert.Contains(t, out, "rclone v") |
| 194 | assert.Contains(t, out, " DEBUG : ") |
| 195 | assert.Regexp(t, "[^\\s]+\\.go:\\d+:", out) // ___.go:__: |
| 196 | assert.Contains(t, out, "173ms") |
| 197 | } |
| 198 | |
| 199 | // Test setup of config file |
| 200 | out, err = rclone("config", "create", "myLocal", "local") |
| 201 | if assert.NoError(t, err) { |
| 202 | assert.Contains(t, out, "[myLocal]") |
| 203 | assert.Contains(t, out, "type = local") |
| 204 | } |
| 205 | |
| 206 | // Test creation of simple test data |
| 207 | createSimpleTestData(t) |
| 208 | |
| 209 | // Test access to config file and simple test data |
nothing calls this directly
no test coverage detected
searching dependent graphs…