2021-11-29 13:42:20 +00:00
|
|
|
package storiface
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"testing"
|
|
|
|
|
2022-06-14 15:00:51 +00:00
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
2021-11-29 13:42:20 +00:00
|
|
|
stabi "github.com/filecoin-project/go-state-types/abi"
|
2022-06-14 15:00:51 +00:00
|
|
|
|
2022-06-14 18:03:38 +00:00
|
|
|
"github.com/filecoin-project/lotus/storage/sealer/sealtasks"
|
2021-11-29 13:42:20 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestListResourceVars(t *testing.T) {
|
2022-08-29 13:57:58 +00:00
|
|
|
seen := map[string]struct{}{}
|
2021-11-29 14:14:57 +00:00
|
|
|
_, err := ParseResourceEnv(func(key, def string) (string, bool) {
|
2022-08-29 13:57:58 +00:00
|
|
|
_, s := seen[key]
|
|
|
|
if !s && def != "" {
|
2021-11-29 13:42:20 +00:00
|
|
|
fmt.Printf("%s=%s\n", key, def)
|
2022-08-29 13:57:58 +00:00
|
|
|
seen[key] = struct{}{}
|
2021-11-29 13:42:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return "", false
|
|
|
|
})
|
|
|
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestListResourceOverride(t *testing.T) {
|
2021-11-29 14:14:57 +00:00
|
|
|
rt, err := ParseResourceEnv(func(key, def string) (string, bool) {
|
2021-11-29 13:42:20 +00:00
|
|
|
if key == "UNS_2K_MAX_PARALLELISM" {
|
|
|
|
return "2", true
|
|
|
|
}
|
|
|
|
if key == "PC2_2K_GPU_UTILIZATION" {
|
|
|
|
return "0.4", true
|
|
|
|
}
|
|
|
|
if key == "PC2_2K_MAX_MEMORY" {
|
|
|
|
return "2222", true
|
|
|
|
}
|
|
|
|
|
|
|
|
return "", false
|
|
|
|
})
|
|
|
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, 2, rt[sealtasks.TTUnseal][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxParallelism)
|
|
|
|
require.Equal(t, 0.4, rt[sealtasks.TTPreCommit2][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].GPUUtilization)
|
|
|
|
require.Equal(t, uint64(2222), rt[sealtasks.TTPreCommit2][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxMemory)
|
|
|
|
|
|
|
|
// check that defaults don't get mutated
|
|
|
|
require.Equal(t, 1, ResourceTable[sealtasks.TTUnseal][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxParallelism)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestListResourceSDRMulticoreOverride(t *testing.T) {
|
2021-11-29 14:14:57 +00:00
|
|
|
rt, err := ParseResourceEnv(func(key, def string) (string, bool) {
|
2021-11-29 13:42:20 +00:00
|
|
|
if key == "FIL_PROOFS_USE_MULTICORE_SDR" {
|
|
|
|
return "1", true
|
|
|
|
}
|
|
|
|
|
|
|
|
return "", false
|
|
|
|
})
|
|
|
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, 4, rt[sealtasks.TTPreCommit1][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxParallelism)
|
|
|
|
require.Equal(t, 4, rt[sealtasks.TTUnseal][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxParallelism)
|
|
|
|
|
2021-11-29 14:14:57 +00:00
|
|
|
rt, err = ParseResourceEnv(func(key, def string) (string, bool) {
|
2021-11-29 13:42:20 +00:00
|
|
|
if key == "FIL_PROOFS_USE_MULTICORE_SDR" {
|
|
|
|
return "1", true
|
|
|
|
}
|
|
|
|
if key == "FIL_PROOFS_MULTICORE_SDR_PRODUCERS" {
|
|
|
|
return "9000", true
|
|
|
|
}
|
|
|
|
|
|
|
|
return "", false
|
|
|
|
})
|
|
|
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, 9001, rt[sealtasks.TTPreCommit1][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxParallelism)
|
|
|
|
require.Equal(t, 9001, rt[sealtasks.TTUnseal][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxParallelism)
|
|
|
|
}
|
2022-08-29 13:57:58 +00:00
|
|
|
|
|
|
|
func TestUnsizedSetAll(t *testing.T) {
|
|
|
|
rt, err := ParseResourceEnv(func(key, def string) (string, bool) {
|
|
|
|
if key == "UNS_MAX_PARALLELISM" {
|
|
|
|
return "2", true
|
|
|
|
}
|
|
|
|
|
|
|
|
return "", false
|
|
|
|
})
|
|
|
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, 2, rt[sealtasks.TTUnseal][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxParallelism)
|
|
|
|
require.Equal(t, 2, rt[sealtasks.TTUnseal][stabi.RegisteredSealProof_StackedDrg32GiBV1].MaxParallelism)
|
|
|
|
require.Equal(t, 2, rt[sealtasks.TTUnseal][stabi.RegisteredSealProof_StackedDrg8MiBV1].MaxParallelism)
|
|
|
|
|
|
|
|
// check that defaults don't get mutated
|
|
|
|
require.Equal(t, 1, ResourceTable[sealtasks.TTUnseal][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxParallelism)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestUnsizedNotPreferred(t *testing.T) {
|
|
|
|
rt, err := ParseResourceEnv(func(key, def string) (string, bool) {
|
|
|
|
if key == "DC_MAX_PARALLELISM" {
|
|
|
|
return "2", true
|
|
|
|
}
|
|
|
|
|
|
|
|
// test should also print a warning for DataCid as it's not sector-size dependent
|
|
|
|
if key == "DC_64G_MAX_PARALLELISM" {
|
|
|
|
return "1", true
|
|
|
|
}
|
|
|
|
|
|
|
|
return "", false
|
|
|
|
})
|
|
|
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, 2, rt[sealtasks.TTDataCid][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxParallelism)
|
|
|
|
require.Equal(t, 2, rt[sealtasks.TTDataCid][stabi.RegisteredSealProof_StackedDrg32GiBV1].MaxParallelism)
|
|
|
|
require.Equal(t, 1, rt[sealtasks.TTDataCid][stabi.RegisteredSealProof_StackedDrg64GiBV1_1].MaxParallelism)
|
|
|
|
|
|
|
|
// check that defaults don't get mutated
|
|
|
|
require.Equal(t, 1, ResourceTable[sealtasks.TTUnseal][stabi.RegisteredSealProof_StackedDrg2KiBV1_1].MaxParallelism)
|
|
|
|
}
|