4eb9ff2abf
The current method would not allow version strings like 0.4.0.5 since it would check every number of the version string individually.
77 lines
1.2 KiB
Go
77 lines
1.2 KiB
Go
package tor
|
|
|
|
import "testing"
|
|
|
|
// TestParseTorVersion is a series of tests for different version strings that
|
|
// check the correctness of determining whether they support creating v3 onion
|
|
// services through Tor control's port.
|
|
func TestParseTorVersion(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tests := []struct {
|
|
version string
|
|
valid bool
|
|
}{
|
|
{
|
|
version: "0.3.3.6",
|
|
valid: true,
|
|
},
|
|
{
|
|
version: "0.3.3.7",
|
|
valid: true,
|
|
},
|
|
{
|
|
version: "0.3.4.6",
|
|
valid: true,
|
|
},
|
|
{
|
|
version: "0.4.3.6",
|
|
valid: true,
|
|
},
|
|
{
|
|
version: "0.4.0.5",
|
|
valid: true,
|
|
},
|
|
{
|
|
version: "1.3.3.6",
|
|
valid: true,
|
|
},
|
|
{
|
|
version: "0.3.3.6-rc",
|
|
valid: true,
|
|
},
|
|
{
|
|
version: "0.3.3.7-rc",
|
|
valid: true,
|
|
},
|
|
{
|
|
version: "0.3.3.5-rc",
|
|
valid: false,
|
|
},
|
|
{
|
|
version: "0.3.3.5",
|
|
valid: false,
|
|
},
|
|
{
|
|
version: "0.3.2.6",
|
|
valid: false,
|
|
},
|
|
{
|
|
version: "0.1.3.6",
|
|
valid: false,
|
|
},
|
|
{
|
|
version: "0.0.6.3",
|
|
valid: false,
|
|
},
|
|
}
|
|
|
|
for i, test := range tests {
|
|
err := supportsV3(test.version)
|
|
if test.valid != (err == nil) {
|
|
t.Fatalf("test %d with version string %v failed: %v", i,
|
|
test.version, err)
|
|
}
|
|
}
|
|
}
|