mirror of
https://github.com/cunnie/sslip.io.git
synced 2025-10-06 08:06:53 +08:00
Integration tests work intenetless by default
This is a convenience when I'm on a flight and feel like coding and the internet connection is spotty at best.
This commit is contained in:
@@ -23,7 +23,7 @@ var serverPath, _ = Build("main.go")
|
||||
|
||||
var _ = BeforeSuite(func() {
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
serverCmd = exec.Command(serverPath, "-port", strconv.Itoa(port))
|
||||
serverCmd = exec.Command(serverPath, "-port", strconv.Itoa(port), "-blocklistURL", "file://../../etc/blocklist.txt")
|
||||
serverSession, err = Start(serverCmd, GinkgoWriter, GinkgoWriter)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
// takes 0.455s to start up on macOS Big Sur 3.7 GHz Quad Core 22-nm Xeon E5-1620v2 processor (2013 Mac Pro)
|
||||
|
@@ -13,6 +13,7 @@ import (
|
||||
"net"
|
||||
"net/http"
|
||||
"net/netip"
|
||||
"os"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"strconv"
|
||||
@@ -1068,16 +1069,31 @@ func (a Metrics) MostlyEquals(b Metrics) bool {
|
||||
}
|
||||
|
||||
func (x *Xip) downloadBlockList(blocklistURL string) string {
|
||||
resp, err := http.Get(blocklistURL)
|
||||
if err != nil {
|
||||
return fmt.Sprintf(`failed to download blocklist "%s": %s`, blocklistURL, err.Error())
|
||||
var err error
|
||||
var blocklistReader io.ReadCloser
|
||||
// file protocol's purpose is so I can run tests while flyiing with no internet
|
||||
fileProtocolRE := regexp.MustCompile(`^file://`)
|
||||
if fileProtocolRE.MatchString(blocklistURL) {
|
||||
blocklistPath := strings.TrimPrefix(blocklistURL, "file://")
|
||||
blocklistReader, err = os.Open(blocklistPath)
|
||||
if err != nil {
|
||||
return fmt.Sprintf(`failed to open blocklist "%s": %s`, blocklistPath, err.Error())
|
||||
}
|
||||
//noinspection GoUnhandledErrorResult
|
||||
defer blocklistReader.Close()
|
||||
} else {
|
||||
resp, err := http.Get(blocklistURL)
|
||||
if err != nil {
|
||||
return fmt.Sprintf(`failed to download blocklist "%s": %s`, blocklistURL, err.Error())
|
||||
}
|
||||
blocklistReader = resp.Body
|
||||
//noinspection GoUnhandledErrorResult
|
||||
defer blocklistReader.Close()
|
||||
if resp.StatusCode > 299 {
|
||||
return fmt.Sprintf(`failed to download blocklist "%s", HTTP status: "%d"`, blocklistURL, resp.StatusCode)
|
||||
}
|
||||
}
|
||||
//noinspection GoUnhandledErrorResult
|
||||
defer resp.Body.Close()
|
||||
if resp.StatusCode > 299 {
|
||||
return fmt.Sprintf(`failed to download blocklist "%s", HTTP status: "%d"`, blocklistURL, resp.StatusCode)
|
||||
}
|
||||
blocklistStrings, blocklistCIDRs, err := ReadBlocklist(resp.Body)
|
||||
blocklistStrings, blocklistCIDRs, err := ReadBlocklist(blocklistReader)
|
||||
if err != nil {
|
||||
return fmt.Sprintf(`failed to parse blocklist "%s": %s`, blocklistURL, err.Error())
|
||||
}
|
||||
|
Reference in New Issue
Block a user