diff options
| author | Jakob Unterwurzacher | 2016-10-04 22:29:14 +0200 | 
|---|---|---|
| committer | Jakob Unterwurzacher | 2016-10-04 22:34:12 +0200 | 
| commit | db5782028aaff99dbf15c62d851a4f6ec8227748 (patch) | |
| tree | 78fddba641b4f84ec99ed22dadecb50df1eb9809 | |
| parent | b80d01056f35b2d062e73a6c7d4ba3cff3b6ef7e (diff) | |
tests: skip tests with -openssl=false on Go 1.4 and lower
Go versions 1.4 and lower lack NewGCMWithNonceSize(), which causes
a panic in the test.
| -rw-r--r-- | internal/cryptocore/gcm_go1.4.go | 4 | ||||
| -rw-r--r-- | internal/cryptocore/gcm_go1.5.go | 4 | ||||
| -rw-r--r-- | tests/example_filesystems/example_filesystems_test.go | 8 | ||||
| -rw-r--r-- | tests/matrix/matrix_test.go | 8 | 
4 files changed, 22 insertions, 2 deletions
| diff --git a/internal/cryptocore/gcm_go1.4.go b/internal/cryptocore/gcm_go1.4.go index f7b77b2..6b494d7 100644 --- a/internal/cryptocore/gcm_go1.4.go +++ b/internal/cryptocore/gcm_go1.4.go @@ -10,6 +10,10 @@ import (  	"github.com/rfjakob/gocryptfs/internal/tlog"  ) +const ( +	HaveModernGoGCM = false +) +  // goGCMWrapper - This wrapper makes sure gocryptfs can be compiled on Go  // versions 1.4 and lower that lack NewGCMWithNonceSize().  // 128 bit GCM IVs will not work when using built-in Go crypto, obviously, when diff --git a/internal/cryptocore/gcm_go1.5.go b/internal/cryptocore/gcm_go1.5.go index 0c9b1a5..6e67d21 100644 --- a/internal/cryptocore/gcm_go1.5.go +++ b/internal/cryptocore/gcm_go1.5.go @@ -7,6 +7,10 @@ import (  	"crypto/cipher"  ) +const ( +	HaveModernGoGCM = true +) +  // goGCMWrapper - This wrapper makes sure gocryptfs can be compiled on Go  // versions 1.4 and lower that lack NewGCMWithNonceSize().  // 128 bit GCM IVs will not work when using built-in Go crypto, obviously, when diff --git a/tests/example_filesystems/example_filesystems_test.go b/tests/example_filesystems/example_filesystems_test.go index 8b01555..2b0c2ca 100644 --- a/tests/example_filesystems/example_filesystems_test.go +++ b/tests/example_filesystems/example_filesystems_test.go @@ -12,6 +12,7 @@ import (  	"os"  	"testing" +	"github.com/rfjakob/gocryptfs/internal/cryptocore"  	"github.com/rfjakob/gocryptfs/tests/test_helpers"  ) @@ -22,7 +23,12 @@ var opensslOpt string  func TestMain(m *testing.M) {  	// Make "testing.Verbose()" return the correct value  	flag.Parse() -	for _, opensslOpt = range []string{"-openssl=false", "-openssl=true"} { +	variants := []string{"-openssl=true", "-openssl=false"} +	if !cryptocore.HaveModernGoGCM { +		fmt.Printf("Skipping Go GCM variant, Go installation is too old") +		variants = variants[:1] +	} +	for _, opensslOpt = range variants {  		if testing.Verbose() {  			fmt.Printf("example_filesystems: testing with %q\n", opensslOpt)  		} diff --git a/tests/matrix/matrix_test.go b/tests/matrix/matrix_test.go index 6a96909..b4c5668 100644 --- a/tests/matrix/matrix_test.go +++ b/tests/matrix/matrix_test.go @@ -22,6 +22,7 @@ import (  	"syscall"  	"testing" +	"github.com/rfjakob/gocryptfs/internal/cryptocore"  	"github.com/rfjakob/gocryptfs/internal/syscallcompat"  	"github.com/rfjakob/gocryptfs/tests/test_helpers"  ) @@ -34,7 +35,12 @@ var plaintextnames bool  func TestMain(m *testing.M) {  	// Make "testing.Verbose()" return the correct value  	flag.Parse() -	for _, openssl := range []bool{true, false} { +	opensslVariants := []bool{true, false} +	if !cryptocore.HaveModernGoGCM { +		fmt.Printf("Skipping Go GCM variant, Go installation is too old") +		opensslVariants = opensslVariants[:1] +	} +	for _, openssl := range opensslVariants {  		for _, plaintextnames = range []bool{true, false} {  			if testing.Verbose() {  				fmt.Printf("matrix: testing openssl=%v plaintextnames=%v\n", openssl, plaintextnames) | 
