tests: contentenc: add TestSizeToSize
TestSizeToSize tests CipherSizeToPlainSize and PlainSizeToCipherSize. Fails at the moment due to CipherSizeToPlainSize non-moniticity.
This commit is contained in:
parent
9695f0e524
commit
2a5ac3e9ba
52
internal/contentenc/offsets_test.go
Normal file
52
internal/contentenc/offsets_test.go
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package contentenc
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/rfjakob/gocryptfs/internal/cryptocore"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TestSizeToSize tests CipherSizeToPlainSize and PlainSizeToCipherSize
|
||||||
|
func TestSizeToSize(t *testing.T) {
|
||||||
|
key := make([]byte, cryptocore.KeyLen)
|
||||||
|
cc := cryptocore.New(key, cryptocore.BackendGoGCM, DefaultIVBits, true, false)
|
||||||
|
ce := New(cc, DefaultBS, false)
|
||||||
|
|
||||||
|
const rangeMax = 10000
|
||||||
|
|
||||||
|
var c2p [rangeMax]uint64
|
||||||
|
var p2c [rangeMax]uint64
|
||||||
|
|
||||||
|
// Calculate values
|
||||||
|
for i := range c2p {
|
||||||
|
c2p[i] = ce.CipherSizeToPlainSize(uint64(i))
|
||||||
|
p2c[i] = ce.PlainSizeToCipherSize(uint64(i))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Print data table
|
||||||
|
fmt.Print("x\tToPlainSize\tToCipherSize\n")
|
||||||
|
for i := range c2p {
|
||||||
|
if i > 1 && i < rangeMax-1 {
|
||||||
|
// If the point before has value-1 and the point after has value+1,
|
||||||
|
// it is not interesting. Don't print it out.
|
||||||
|
if c2p[i] == c2p[i-1]+1 && p2c[i] == p2c[i-1]+1 && c2p[i+1] == c2p[i]+1 && p2c[i+1] == p2c[i]+1 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Printf("%d\t%d\t%d\n", i, c2p[i], p2c[i])
|
||||||
|
}
|
||||||
|
|
||||||
|
// Monotonicity check
|
||||||
|
for i := range c2p {
|
||||||
|
if i < 1 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if c2p[i-1] > c2p[i] {
|
||||||
|
t.Errorf("error: c2p is non-monotonic: c2p[%d]=%d c2p[%d]=%d ", i-1, c2p[i-1], i, c2p[i])
|
||||||
|
}
|
||||||
|
if p2c[i-1] > p2c[i] {
|
||||||
|
t.Errorf("error: p2c is non-monotonic: p2c[%d]=%d p2c[%d]=%d ", i-1, p2c[i-1], i, p2c[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user