refactor: move more commands to internal/cmd (#207)
* refactor: move more commands to internal/cmd Part of https://github.com/ooni/probe/issues/1335. We would like all commands to be at the same level of engine rather than inside engine (now that we can do it). * fix: update .gitignore * refactor: also move jafar outside engine * We should be good now?
This commit is contained in:
parent
6351d898d6
commit
4eeadd06a5
85 changed files with 72 additions and 65 deletions
89
internal/cmd/jafar/main_test.go
Normal file
89
internal/cmd/jafar/main_test.go
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"runtime"
|
||||
"testing"
|
||||
|
||||
"github.com/ooni/probe-cli/v3/internal/cmd/jafar/iptables"
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/shellx"
|
||||
)
|
||||
|
||||
func ensureWeStartOverWithIPTables() {
|
||||
iptables.NewCensoringPolicy().Waive()
|
||||
}
|
||||
|
||||
func TestNoCommand(t *testing.T) {
|
||||
if runtime.GOOS != "linux" {
|
||||
t.Skip("skip test on non Linux systems")
|
||||
}
|
||||
ensureWeStartOverWithIPTables()
|
||||
*dnsProxyAddress = "127.0.0.1:0"
|
||||
*httpProxyAddress = "127.0.0.1:0"
|
||||
*tlsProxyAddress = "127.0.0.1:0"
|
||||
go func() {
|
||||
mainCh <- os.Interrupt
|
||||
}()
|
||||
main()
|
||||
}
|
||||
|
||||
func TestWithCommand(t *testing.T) {
|
||||
if runtime.GOOS != "linux" {
|
||||
t.Skip("skip test on non Linux systems")
|
||||
}
|
||||
ensureWeStartOverWithIPTables()
|
||||
*dnsProxyAddress = "127.0.0.1:0"
|
||||
*httpProxyAddress = "127.0.0.1:0"
|
||||
*tlsProxyAddress = "127.0.0.1:0"
|
||||
*mainCommand = "whoami"
|
||||
defer func() {
|
||||
*mainCommand = ""
|
||||
}()
|
||||
main()
|
||||
}
|
||||
|
||||
func TestMustx(t *testing.T) {
|
||||
t.Run("with no error", func(t *testing.T) {
|
||||
var called int
|
||||
mustx(nil, "", func(int) {
|
||||
called++
|
||||
})
|
||||
if called != 0 {
|
||||
t.Fatal("should not happen")
|
||||
}
|
||||
})
|
||||
t.Run("with non-exit-code error", func(t *testing.T) {
|
||||
var (
|
||||
called int
|
||||
exitcode int
|
||||
)
|
||||
mustx(errors.New("antani"), "", func(ec int) {
|
||||
called++
|
||||
exitcode = ec
|
||||
})
|
||||
if called != 1 {
|
||||
t.Fatal("not called?!")
|
||||
}
|
||||
if exitcode != 1 {
|
||||
t.Fatal("unexpected exitcode value")
|
||||
}
|
||||
})
|
||||
t.Run("with exit-code error", func(t *testing.T) {
|
||||
var (
|
||||
called int
|
||||
exitcode int
|
||||
)
|
||||
err := shellx.Run("curl", "-sf", "") // cause exitcode == 3
|
||||
mustx(err, "", func(ec int) {
|
||||
called++
|
||||
exitcode = ec
|
||||
})
|
||||
if called != 1 {
|
||||
t.Fatal("not called?!")
|
||||
}
|
||||
if exitcode != 3 {
|
||||
t.Fatal("unexpected exitcode value")
|
||||
}
|
||||
})
|
||||
}
|
||||
Loading…
Reference in a new issue