mirror of
https://github.com/luxfi/netrunner.git
synced 2026-07-27 00:04:23 +00:00
126 lines
3.6 KiB
Go
126 lines
3.6 KiB
Go
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
var genesis = []byte(
|
|
`{
|
|
"networkID": 1337,
|
|
"allocations": [
|
|
{
|
|
"evmAddr": "0xb3d82b1367d362de99ab59a658165aff520cbd4d",
|
|
"utxoAddr": "X-custom1g65uqn6t77p656w64023nh8nd9updzmxwd59gh",
|
|
"initialAmount": 0,
|
|
"unlockSchedule": [
|
|
{
|
|
"amount": 10000000000000000,
|
|
"locktime": 1633824000
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"startTime": 1630987200,
|
|
"initialStakeDuration": 31536000,
|
|
"initialStakeDurationOffset": 5400,
|
|
"initialStakedFunds": [
|
|
"X-custom1g65uqn6t77p656w64023nh8nd9updzmxwd59gh"
|
|
],
|
|
"initialStakers": [
|
|
{
|
|
"nodeID": "NodeID-7Xhw2mDxuDS44j42TCB6U5579esbSt3Lg",
|
|
"rewardAddress": "X-custom18jma8ppw3nhx5r4ap8clazz0dps7rv5u9xde7p",
|
|
"delegationFee": 1000000
|
|
}
|
|
],
|
|
"cChainGenesis": "{\"config\":{\"chainId\":43112,\"homesteadBlock\":0,\"daoForkBlock\":0,\"daoForkSupport\":true,\"eip150Block\":0,\"eip150Hash\":\"0x2086799aeebeae135c246c65021c82b4e15a2c451340993aacfd2751886514f0\",\"eip155Block\":0,\"eip158Block\":0,\"byzantiumBlock\":0,\"constantinopleBlock\":0,\"petersburgBlock\":0,\"istanbulBlock\":0,\"muirGlacierBlock\":0,\"apricotPhase1BlockTimestamp\":0,\"apricotPhase2BlockTimestamp\":0},\"nonce\":\"0x0\",\"timestamp\":\"0x0\",\"extraData\":\"0x00\",\"gasLimit\":\"0x5f5e100\",\"difficulty\":\"0x0\",\"mixHash\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"coinbase\":\"0x0000000000000000000000000000000000000000\",\"alloc\":{\"9011E888251AB053B7bD1cdB598Db4f9DEd94714\":{\"balance\":\"0x295BE96E64066972000000\"}},\"number\":\"0x0\",\"gasUsed\":\"0x0\",\"parentHash\":\"0x0000000000000000000000000000000000000000000000000000000000000000\"}",
|
|
"message": "{{ fun_quote }}"
|
|
}`,
|
|
)
|
|
|
|
// TestExtractNetworkID tests the internal getNetworkID method which
|
|
// extracts the NetworkID from the genesis file
|
|
func TestExtractNetworkID(t *testing.T) {
|
|
netID, err := NetworkIDFromGenesis(genesis)
|
|
require.NoError(t, err)
|
|
require.EqualValues(t, netID, 1337)
|
|
}
|
|
|
|
func TestCheckExecPath(t *testing.T) {
|
|
execF, err := os.CreateTemp(os.TempDir(), "test-check-exec")
|
|
require.NoError(t, err)
|
|
execPath := execF.Name()
|
|
require.NoError(t, execF.Close())
|
|
|
|
t.Cleanup(func() {
|
|
err = os.RemoveAll(execPath)
|
|
require.NoError(t, err)
|
|
})
|
|
|
|
tt := []struct {
|
|
execPath string
|
|
expectedErr error
|
|
}{
|
|
{
|
|
execPath: execPath,
|
|
expectedErr: nil,
|
|
},
|
|
{
|
|
execPath: "",
|
|
expectedErr: ErrInvalidExecPath,
|
|
},
|
|
{
|
|
execPath: "invalid",
|
|
expectedErr: ErrNotExists,
|
|
},
|
|
}
|
|
for i, tv := range tt {
|
|
err := CheckExecPath(tv.execPath)
|
|
require.Equal(t, tv.expectedErr, err, fmt.Sprintf("[%d] unexpected error", i))
|
|
}
|
|
}
|
|
|
|
func TestCheckPluginPaths(t *testing.T) {
|
|
pluginF, err := os.CreateTemp(os.TempDir(), "test-check-exec-plugin")
|
|
require.NoError(t, err)
|
|
pluginPath := pluginF.Name()
|
|
require.NoError(t, pluginF.Close())
|
|
|
|
genesisF, err := os.CreateTemp(os.TempDir(), "test-check-genesis-plugin")
|
|
require.NoError(t, err)
|
|
genesisPath := genesisF.Name()
|
|
require.NoError(t, genesisF.Close())
|
|
|
|
t.Cleanup(func() {
|
|
err = os.RemoveAll(pluginPath)
|
|
require.NoError(t, err)
|
|
err = os.RemoveAll(genesisPath)
|
|
require.NoError(t, err)
|
|
})
|
|
|
|
tt := []struct {
|
|
pluginPath string
|
|
genesisPath string
|
|
expectedErr error
|
|
}{
|
|
{
|
|
pluginPath: pluginPath,
|
|
genesisPath: genesisPath,
|
|
expectedErr: nil,
|
|
},
|
|
{
|
|
pluginPath: "invalid",
|
|
genesisPath: "",
|
|
expectedErr: ErrNotExistsPlugin,
|
|
},
|
|
}
|
|
for i, tv := range tt {
|
|
err := CheckPluginPath(tv.pluginPath)
|
|
require.Equal(t, tv.expectedErr, err, fmt.Sprintf("[%d] unexpected error", i))
|
|
}
|
|
}
|