fix ci for nim 1.6 and devel
- rm -f nimble.lock to allow nim 1.2,1.4,1.6, and devel run test with nimble - upgrade ubuntu runner to 20.04 - upgrade github actions to v3
This commit is contained in:
parent
f6acc5e3da
commit
a1f3b22bbe
|
@ -30,7 +30,7 @@ jobs:
|
|||
include:
|
||||
- target:
|
||||
os: linux
|
||||
builder: ubuntu-18.04
|
||||
builder: ubuntu-20.04
|
||||
shell: bash
|
||||
- target:
|
||||
os: macos
|
||||
|
@ -96,7 +96,7 @@ jobs:
|
|||
- name: Restore Nim DLLs dependencies (Windows) from cache
|
||||
if: runner.os == 'Windows'
|
||||
id: windows-dlls-cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: external/dlls-${{ matrix.target.cpu }}
|
||||
key: 'dlls-${{ matrix.target.cpu }}'
|
||||
|
@ -156,6 +156,14 @@ jobs:
|
|||
nim --version
|
||||
nimble --version
|
||||
nimble install -y --depsOnly
|
||||
nimble install -y toml_serialization json_serialization
|
||||
nimble test
|
||||
|
||||
nimble install -y toml_serialization json_serialization unittest2
|
||||
rm -f nimble.lock
|
||||
env NIMFLAGS="${NIMFLAGS} --gc:refc" nimble test
|
||||
let "linux32= "${{ matrix.target.os }}" == "linux" && "${{ matrix.target.cpu }}" == "i386""
|
||||
if [[ "${{ matrix.branch }}" == "devel" && "$linux32" == 0 ]]; then
|
||||
echo -e "\nTesting with '--gc:orc':\n"
|
||||
if env NIMFLAGS="${NIMFLAGS} --gc:orc" nimble test; then
|
||||
echo "Nim devel with --gc:orc works again! Please remove this check in ci.yml"
|
||||
false
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -3,3 +3,4 @@ nimcache
|
|||
nimble.develop
|
||||
nimble.paths
|
||||
build/
|
||||
vendor/
|
84
nimble.lock
84
nimble.lock
|
@ -3,12 +3,90 @@
|
|||
"packages": {
|
||||
"stew": {
|
||||
"version": "0.1.0",
|
||||
"vcsRevision": "6ad35b876fb6ebe0dfee0f697af173acc47906ee",
|
||||
"url": "https://github.com/status-im/nim-stew.git",
|
||||
"vcsRevision": "cdb1f213d073fd2ecbdaf35a866417657da9294c",
|
||||
"url": "https://github.com/status-im/nim-stew",
|
||||
"downloadMethod": "git",
|
||||
"dependencies": [],
|
||||
"checksums": {
|
||||
"sha1": "46d58c4feb457f3241e3347778334e325dce5268"
|
||||
"sha1": "3dd9e4ec78d906b59b6f9bcf74f5f8fa6b5c24fe"
|
||||
}
|
||||
},
|
||||
"unittest2": {
|
||||
"version": "0.0.5",
|
||||
"vcsRevision": "da8398c45cafd5bd7772da1fc96e3924a18d3823",
|
||||
"url": "https://github.com/status-im/nim-unittest2",
|
||||
"downloadMethod": "git",
|
||||
"dependencies": [],
|
||||
"checksums": {
|
||||
"sha1": "b3f8493a4948989ef3e645a38b23aad77e851e26"
|
||||
}
|
||||
},
|
||||
"httputils": {
|
||||
"version": "0.3.0",
|
||||
"vcsRevision": "a85bd52ae0a956983ca6b3267c72961d2ec0245f",
|
||||
"url": "https://github.com/status-im/nim-http-utils",
|
||||
"downloadMethod": "git",
|
||||
"dependencies": [
|
||||
"stew",
|
||||
"unittest2"
|
||||
],
|
||||
"checksums": {
|
||||
"sha1": "92933b21bcd29335f68e377e2b2193fa331e28b3"
|
||||
}
|
||||
},
|
||||
"bearssl": {
|
||||
"version": "0.2.0",
|
||||
"vcsRevision": "acf9645e328bdcab481cfda1c158e07ecd46bd7b",
|
||||
"url": "https://github.com/status-im/nim-bearssl",
|
||||
"downloadMethod": "git",
|
||||
"dependencies": [
|
||||
"unittest2"
|
||||
],
|
||||
"checksums": {
|
||||
"sha1": "c939aef6a1c17c95131242a6292ade1c92380792"
|
||||
}
|
||||
},
|
||||
"chronos": {
|
||||
"version": "3.0.11",
|
||||
"vcsRevision": "8fcbe716b2f069480277aa6781782d3e311ee2c0",
|
||||
"url": "https://github.com/status-im/nim-chronos",
|
||||
"downloadMethod": "git",
|
||||
"dependencies": [
|
||||
"stew",
|
||||
"bearssl",
|
||||
"httputils",
|
||||
"unittest2"
|
||||
],
|
||||
"checksums": {
|
||||
"sha1": "a9f6c91ea5b2f48dddd8500c9556562185102808"
|
||||
}
|
||||
},
|
||||
"faststreams": {
|
||||
"version": "0.3.0",
|
||||
"vcsRevision": "814f8927e1f356f39219f37f069b83066bcc893a",
|
||||
"url": "https://github.com/status-im/nim-faststreams",
|
||||
"downloadMethod": "git",
|
||||
"dependencies": [
|
||||
"stew",
|
||||
"chronos",
|
||||
"unittest2"
|
||||
],
|
||||
"checksums": {
|
||||
"sha1": "16c69a7b454d803dcf28f6115f42bb47421d9376"
|
||||
}
|
||||
},
|
||||
"serialization": {
|
||||
"version": "0.1.0",
|
||||
"vcsRevision": "5b7cea55efeb074daa8abd8146a03a34adb4521a",
|
||||
"url": "https://github.com/status-im/nim-serialization",
|
||||
"downloadMethod": "git",
|
||||
"dependencies": [
|
||||
"faststreams",
|
||||
"unittest2",
|
||||
"stew"
|
||||
],
|
||||
"checksums": {
|
||||
"sha1": "433ee95c167fa9f8a4d6691d5e0e8d6b5d8516a6"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
||||
|
||||
import
|
||||
options, unittest, os,
|
||||
std/[options, os],
|
||||
unittest2,
|
||||
stew/byteutils, ../confutils,
|
||||
../confutils/[std/net]
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import
|
||||
unittest, options,
|
||||
std/options,
|
||||
unittest2,
|
||||
../confutils/envvar/envvar_serialization,
|
||||
../confutils/envvar/utils
|
||||
|
||||
|
@ -110,7 +111,7 @@ proc testOptionalFields() =
|
|||
var x = Envvar.loadFile(commonPrefix, TestObject)
|
||||
check x.address.isSome
|
||||
check x.address.get().value == "1.2.3.4"
|
||||
|
||||
|
||||
testUtils()
|
||||
testEncoder()
|
||||
testOptionalFields()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import
|
||||
std/unittest,
|
||||
unittest2,
|
||||
../confutils,
|
||||
../confutils/defs
|
||||
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
||||
|
||||
import
|
||||
std/[sequtils, unittest],
|
||||
std/[sequtils],
|
||||
unittest2,
|
||||
../confutils
|
||||
|
||||
func testValidValues[T](lo: T = low(T), hi: T = high(T)): bool =
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import
|
||||
std/unittest,
|
||||
unittest2,
|
||||
../confutils,
|
||||
../confutils/defs
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import
|
||||
std/[strutils, unittest],
|
||||
std/[strutils],
|
||||
unittest2,
|
||||
../confutils,
|
||||
./specialint
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import
|
||||
unittest, options, os,
|
||||
std/[options, os],
|
||||
unittest2,
|
||||
../confutils/winreg/winreg_serialization,
|
||||
../confutils/winreg/utils
|
||||
|
||||
|
@ -19,81 +20,22 @@ template readWrite(key: string, val: typed) =
|
|||
check ok == true
|
||||
check outVal == val
|
||||
|
||||
proc testUtils() =
|
||||
suite "winreg utils test suite":
|
||||
readWrite("some number", 123'u32)
|
||||
readWrite("some number 64", 123'u64)
|
||||
readWrite("some bytes", @[1.byte, 2.byte])
|
||||
readWrite("some int list", @[4,5,6])
|
||||
readWrite("some array", [1.byte, 2.byte, 4.byte])
|
||||
readWrite("some string", "hello world")
|
||||
readWrite("some enum", Apple)
|
||||
readWrite("some boolean", true)
|
||||
readWrite("some float32", 1.234'f32)
|
||||
readWrite("some float64", 1.234'f64)
|
||||
suite "winreg utils test suite":
|
||||
readWrite("some number", 123'u32)
|
||||
readWrite("some number 64", 123'u64)
|
||||
readWrite("some bytes", @[1.byte, 2.byte])
|
||||
readWrite("some int list", @[4,5,6])
|
||||
readWrite("some array", [1.byte, 2.byte, 4.byte])
|
||||
readWrite("some string", "hello world")
|
||||
readWrite("some enum", Apple)
|
||||
readWrite("some boolean", true)
|
||||
readWrite("some float32", 1.234'f32)
|
||||
readWrite("some float64", 1.234'f64)
|
||||
|
||||
test "parse winregpath":
|
||||
let (hKey, path) = parseWinregPath("HKEY_CLASSES_ROOT\\" & commonPath)
|
||||
check hKey == HKCR
|
||||
check path == commonPath
|
||||
|
||||
proc testEncoder() =
|
||||
type
|
||||
Class = enum
|
||||
Truck
|
||||
MPV
|
||||
SUV
|
||||
|
||||
Fuel = enum
|
||||
Gasoline
|
||||
Diesel
|
||||
|
||||
Engine = object
|
||||
cylinder: int
|
||||
valve: int16
|
||||
fuel: Fuel
|
||||
|
||||
Suspension = object
|
||||
dist: int
|
||||
length: int
|
||||
|
||||
Vehicle = object
|
||||
name: string
|
||||
color: int
|
||||
class: Class
|
||||
engine: Engine
|
||||
wheel: int
|
||||
suspension: array[3, Suspension]
|
||||
door: array[4, int]
|
||||
antennae: Option[int]
|
||||
bumper: Option[string]
|
||||
|
||||
suite "winreg encoder test suite":
|
||||
test "basic encoder and decoder":
|
||||
let v = Vehicle(
|
||||
name: "buggy",
|
||||
color: 213,
|
||||
class: MPV,
|
||||
engine: Engine(
|
||||
cylinder: 3,
|
||||
valve: 2,
|
||||
fuel: Diesel
|
||||
),
|
||||
wheel: 6,
|
||||
door: [1,2,3,4],
|
||||
suspension: [
|
||||
Suspension(dist: 1, length: 5),
|
||||
Suspension(dist: 2, length: 6),
|
||||
Suspension(dist: 3, length: 7)
|
||||
],
|
||||
bumper: some("Chromium")
|
||||
)
|
||||
|
||||
Winreg.encode(HKCU, commonPath, v)
|
||||
let x = Winreg.decode(HKCU, commonPath, Vehicle)
|
||||
check x == v
|
||||
check x.antennae.isNone
|
||||
check x.bumper.get() == "Chromium"
|
||||
test "parse winregpath":
|
||||
let (hKey, path) = parseWinregPath("HKEY_CLASSES_ROOT\\" & commonPath)
|
||||
check hKey == HKCR
|
||||
check path == commonPath
|
||||
|
||||
type
|
||||
ValidIpAddress {.requiresInit.} = object
|
||||
|
@ -108,16 +50,68 @@ proc readValue(r: var WinregReader, value: var ValidIpAddress) =
|
|||
proc writeValue(w: var WinregWriter, value: ValidIpAddress) =
|
||||
w.writeValue(value.value)
|
||||
|
||||
proc testOptionalFields() =
|
||||
suite "optional fields test suite":
|
||||
test "optional field with requiresInit pragma":
|
||||
suite "optional fields test suite":
|
||||
test "optional field with requiresInit pragma":
|
||||
|
||||
var z = TestObject(address: some(ValidIpAddress(value: "1.2.3.4")))
|
||||
Winreg.saveFile("HKCU" / commonPath, z)
|
||||
var x = Winreg.loadFile("HKCU" / commonPath, TestObject)
|
||||
check x.address.isSome
|
||||
check x.address.get().value == "1.2.3.4"
|
||||
var z = TestObject(address: some(ValidIpAddress(value: "1.2.3.4")))
|
||||
Winreg.saveFile("HKCU" / commonPath, z)
|
||||
var x = Winreg.loadFile("HKCU" / commonPath, TestObject)
|
||||
check x.address.isSome
|
||||
check x.address.get().value == "1.2.3.4"
|
||||
|
||||
testUtils()
|
||||
testEncoder()
|
||||
testOptionalFields()
|
||||
type
|
||||
Class = enum
|
||||
Truck
|
||||
MPV
|
||||
SUV
|
||||
|
||||
Fuel = enum
|
||||
Gasoline
|
||||
Diesel
|
||||
|
||||
Engine = object
|
||||
cylinder: int
|
||||
valve: int16
|
||||
fuel: Fuel
|
||||
|
||||
Suspension = object
|
||||
dist: int
|
||||
length: int
|
||||
|
||||
Vehicle = object
|
||||
name: string
|
||||
color: int
|
||||
class: Class
|
||||
engine: Engine
|
||||
wheel: int
|
||||
suspension: array[3, Suspension]
|
||||
door: array[4, int]
|
||||
antennae: Option[int]
|
||||
bumper: Option[string]
|
||||
|
||||
suite "winreg encoder test suite":
|
||||
test "basic encoder and decoder":
|
||||
let v = Vehicle(
|
||||
name: "buggy",
|
||||
color: 213,
|
||||
class: MPV,
|
||||
engine: Engine(
|
||||
cylinder: 3,
|
||||
valve: 2,
|
||||
fuel: Diesel
|
||||
),
|
||||
wheel: 6,
|
||||
door: [1,2,3,4],
|
||||
suspension: [
|
||||
Suspension(dist: 1, length: 5),
|
||||
Suspension(dist: 2, length: 6),
|
||||
Suspension(dist: 3, length: 7)
|
||||
],
|
||||
bumper: some("Chromium")
|
||||
)
|
||||
|
||||
Winreg.encode(HKCU, commonPath, v)
|
||||
let x = Winreg.decode(HKCU, commonPath, Vehicle)
|
||||
check x == v
|
||||
check x.antennae.isNone
|
||||
check x.bumper.get() == "Chromium"
|
||||
|
|
Loading…
Reference in New Issue