mirror of
https://github.com/tuneinsight/lattigo.git
synced 2025-09-13 03:27:14 +00:00
[tests] adding a -long test flag to run long-running tests (closes #75)
This commit is contained in:
@@ -7,4 +7,4 @@ go:
|
||||
|
||||
script:
|
||||
- go build ./...
|
||||
- make local
|
||||
- make ci_test
|
||||
|
||||
10
Makefile
10
Makefile
@@ -1,4 +1,4 @@
|
||||
.DEFAULT_GOAL := local
|
||||
.DEFAULT_GOAL := test
|
||||
|
||||
Coding/bin/Makefile.base:
|
||||
git clone https://github.com/dedis/Coding
|
||||
@@ -18,14 +18,14 @@ test_examples:
|
||||
|
||||
.PHONY: test_gotest
|
||||
test_gotest:
|
||||
go test -v -short -p=1 -timeout=0 ./utils ./ring ./bfv ./dbfv ./dckks
|
||||
go test -v -short -p=1 -timeout=0 ./ckks -test-bootstrapping
|
||||
go test -v -timeout=0 ./utils ./ring ./bfv ./dbfv ./dckks
|
||||
go test -v -timeout=0 ./ckks -test-bootstrapping
|
||||
|
||||
.PHONY: test
|
||||
test: test_fmt test_gotest test_examples
|
||||
|
||||
.PHONY: local
|
||||
local: test_fmt test_lint test_gotest test_examples
|
||||
.PHONY: ci_test
|
||||
ci_test: test_fmt test_lint test_gotest test_examples
|
||||
|
||||
%: force Coding/bin/Makefile.base
|
||||
@$(MAKE) -f Coding/bin/Makefile.base $@
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package bfv
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"testing"
|
||||
@@ -13,6 +14,8 @@ import (
|
||||
"github.com/ldsec/lattigo/v2/utils"
|
||||
)
|
||||
|
||||
var flagLongTest = flag.Bool("long", false, "run the long test suite (all parameters). Overrides -short and requires -timeout=0.")
|
||||
|
||||
func testString(opname string, p *Parameters) string {
|
||||
return fmt.Sprintf("%sLogN=%d/logQ=%d/alpha=%d/beta=%d", opname, p.logN, p.LogQP(), p.Alpha(), p.Beta())
|
||||
}
|
||||
@@ -42,12 +45,13 @@ func TestBFV(t *testing.T) {
|
||||
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
|
||||
var defaultParams []*Parameters
|
||||
|
||||
var defaultParams = DefaultParams[PN12QP109 : PN12QP109+4] // the default test runs for ring degree N=2^12, 2^13, 2^14, 2^15
|
||||
if testing.Short() {
|
||||
defaultParams = DefaultParams[PN12QP109 : PN12QP109+3]
|
||||
} else {
|
||||
defaultParams = DefaultParams
|
||||
defaultParams = DefaultParams[PN12QP109 : PN12QP109+2] // the short test suite runs for ring degree N=2^12, 2^13
|
||||
}
|
||||
if *flagLongTest {
|
||||
defaultParams = DefaultParams // the long test suite runs for all default parameters
|
||||
fmt.Println("bfv runing in long mode")
|
||||
}
|
||||
|
||||
for _, p := range defaultParams {
|
||||
|
||||
@@ -7,6 +7,11 @@ import (
|
||||
)
|
||||
|
||||
func BenchmarkBootstrapp(b *testing.B) {
|
||||
|
||||
if !*testBootstrapping {
|
||||
b.Skip("skipping bootstrapping test")
|
||||
}
|
||||
|
||||
var err error
|
||||
var testContext = new(testParams)
|
||||
var btp *Bootstrapper
|
||||
|
||||
@@ -41,7 +41,7 @@ func TestBootstrapp(t *testing.T) {
|
||||
SineScale := math.Exp2(math.Round(math.Log2(float64(q))))
|
||||
|
||||
// Insecure params for fast testing only
|
||||
if testing.Short() {
|
||||
if !*flagLongTest {
|
||||
params.logN = 14
|
||||
params.logSlots = 13
|
||||
}
|
||||
|
||||
@@ -16,8 +16,10 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var flagLongTest = flag.Bool("long", false, "run the long test suite (all parameters + secure bootstrapping). Overrides -short and requires -timeout=0.")
|
||||
var printPrecisionStats = flag.Bool("print-precision", false, "print precision stats")
|
||||
var testBootstrapping = flag.Bool("test-bootstrapping", false, "run the bootstrapping tests (memory intensive)")
|
||||
|
||||
var minPrec float64 = 15.0
|
||||
|
||||
func testString(testContext *testParams, opname string) string {
|
||||
@@ -55,12 +57,12 @@ func TestCKKS(t *testing.T) {
|
||||
var err error
|
||||
var testContext = new(testParams)
|
||||
|
||||
var defaultParams []*Parameters
|
||||
|
||||
var defaultParams = DefaultParams[PN12QP109 : PN12QP109+4] // the default test runs for ring degree N=2^12, 2^13, 2^14, 2^15
|
||||
if testing.Short() {
|
||||
defaultParams = DefaultParams[PN12QP109 : PN12QP109+3]
|
||||
} else {
|
||||
defaultParams = DefaultParams
|
||||
defaultParams = DefaultParams[PN12QP109 : PN12QP109+2] // the short test suite runs for ring degree N=2^12, 2^13
|
||||
}
|
||||
if *flagLongTest {
|
||||
defaultParams = DefaultParams // the long test suite runs for all default parameters
|
||||
}
|
||||
|
||||
for _, defaultParam := range defaultParams {
|
||||
@@ -952,7 +954,6 @@ func testMarshaller(testContext *testParams, t *testing.T) {
|
||||
|
||||
t.Run("Marshaller/Ciphertext/", func(t *testing.T) {
|
||||
t.Run(testString(testContext, "EndToEnd/"), func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
ciphertextWant := NewCiphertextRandom(testContext.prng, testContext.params, 2, testContext.params.MaxLevel(), testContext.params.Scale())
|
||||
|
||||
@@ -972,7 +973,6 @@ func testMarshaller(testContext *testParams, t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run(testString(testContext, "Minimal/"), func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
ciphertext := NewCiphertextRandom(testContext.prng, testContext.params, 0, testContext.params.MaxLevel(), testContext.params.Scale())
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package dbfv
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"math/big"
|
||||
@@ -12,6 +13,7 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var flagLongTest = flag.Bool("long", false, "run the long test suite (all parameters). Overrides -short and requires -timeout=0.")
|
||||
var parties uint64 = 3
|
||||
|
||||
func testString(opname string, parties uint64, params *bfv.Parameters) string {
|
||||
@@ -48,14 +50,13 @@ func Test_DBFV(t *testing.T) {
|
||||
var err error
|
||||
var testCtx = new(testContext)
|
||||
|
||||
var defaultParams []*bfv.Parameters
|
||||
|
||||
var defaultParams = bfv.DefaultParams[bfv.PN12QP109 : bfv.PN12QP109+4] // the default test runs for ring degree N=2^12, 2^13, 2^14, 2^15
|
||||
if testing.Short() {
|
||||
defaultParams = bfv.DefaultParams[bfv.PN12QP109 : bfv.PN12QP109+3]
|
||||
} else {
|
||||
defaultParams = bfv.DefaultParams
|
||||
defaultParams = bfv.DefaultParams[bfv.PN12QP109 : bfv.PN12QP109+2] // the short test runs for ring degree N=2^12, 2^13
|
||||
}
|
||||
if *flagLongTest {
|
||||
defaultParams = bfv.DefaultParams // the long test suite runs for all default parameters
|
||||
}
|
||||
|
||||
for _, p := range defaultParams {
|
||||
|
||||
if testCtx, err = gentestContext(p); err != nil {
|
||||
|
||||
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/ldsec/lattigo/v2/utils"
|
||||
)
|
||||
|
||||
var flagLongTest = flag.Bool("long", false, "run the long test suite (all parameters). Overrides -short and requires -timeout=0.")
|
||||
var printPrecisionStats = flag.Bool("print-precision", false, "print precision stats")
|
||||
var minPrec float64 = 15.0
|
||||
var parties uint64 = 3
|
||||
@@ -58,12 +59,12 @@ func TestDCKKS(t *testing.T) {
|
||||
var err error
|
||||
var testCtx = new(testContext)
|
||||
|
||||
var defaultParams []*ckks.Parameters
|
||||
|
||||
var defaultParams = ckks.DefaultParams[ckks.PN12QP109 : ckks.PN12QP109+4] // the default test runs for ring degree N=2^12, 2^13, 2^14, 2^15
|
||||
if testing.Short() {
|
||||
defaultParams = ckks.DefaultParams[ckks.PN12QP109 : ckks.PN12QP109+3]
|
||||
} else {
|
||||
defaultParams = ckks.DefaultParams
|
||||
defaultParams = ckks.DefaultParams[ckks.PN12QP109 : ckks.PN12QP109+2] // the short test runs for ring degree N=2^12, 2^13
|
||||
}
|
||||
if *flagLongTest {
|
||||
defaultParams = ckks.DefaultParams // the long test suite runs for all default parameters
|
||||
}
|
||||
|
||||
for _, p := range defaultParams {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package ring
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"math/big"
|
||||
"math/bits"
|
||||
@@ -13,6 +14,8 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var flagLongTest = flag.Bool("long", false, "run the long test suite (all parameters). Overrides -short and requires -timeout=0.")
|
||||
|
||||
var T = uint64(0x3ee0001)
|
||||
var DefaultSigma = float64(3.2)
|
||||
var DefaultBound = uint64(6 * DefaultSigma)
|
||||
@@ -51,12 +54,13 @@ func TestRing(t *testing.T) {
|
||||
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
var err error
|
||||
var defaultParams []*Parameters
|
||||
|
||||
var defaultParams = DefaultParams[0:4] // the default test
|
||||
if testing.Short() {
|
||||
defaultParams = DefaultParams[0:3]
|
||||
} else {
|
||||
defaultParams = DefaultParams
|
||||
defaultParams = DefaultParams[0:2] // the short test suite
|
||||
}
|
||||
if *flagLongTest {
|
||||
defaultParams = DefaultParams // the long test suite
|
||||
}
|
||||
|
||||
testNewRing(t)
|
||||
|
||||
Reference in New Issue
Block a user