From 5b0a5ab14611f0f562ae96c75ee5d7ca634ae2ea Mon Sep 17 00:00:00 2001 From: Ganesh Viswanathan Date: Thu, 22 Aug 2019 15:59:13 -0700 Subject: Rename git to build --- tests/tpcre.nim | 2 +- tests/tsoloud.nim | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/tpcre.nim b/tests/tpcre.nim index 705525f..5588850 100644 --- a/tests/tpcre.nim +++ b/tests/tpcre.nim @@ -1,6 +1,6 @@ import os -import nimterop/[cimport, git, paths] +import nimterop/[cimport, build, paths] const baseDir = nimteropBuildDir()/"pcre" diff --git a/tests/tsoloud.nim b/tests/tsoloud.nim index f46dd10..12966a8 100644 --- a/tests/tsoloud.nim +++ b/tests/tsoloud.nim @@ -1,4 +1,4 @@ -import os, nimterop/[cimport, git, paths] +import os, nimterop/[cimport, build, paths] const baseDir = nimteropBuildDir()/"soloud" -- cgit v1.2.3 From ba2bd6e40a1a4b954fd0d508f5cc98d0f06d62bc Mon Sep 17 00:00:00 2001 From: Ganesh Viswanathan Date: Fri, 23 Aug 2019 16:16:00 -0500 Subject: Add getheader test --- tests/getheader.nims | 42 ++++++++++++++++++++++++++++++++++++++++++ tests/lzma.nim | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 tests/getheader.nims create mode 100644 tests/lzma.nim (limited to 'tests') diff --git a/tests/getheader.nims b/tests/getheader.nims new file mode 100644 index 0000000..57584a6 --- /dev/null +++ b/tests/getheader.nims @@ -0,0 +1,42 @@ +import strutils + +proc testCall(cmd, output: string, exitCode: int, delete = true) = + if delete: + rmDir("build/liblzma") + echo cmd + var + ccmd = + when defined(windows): + "cmd /c " & cmd + else: + cmd + (outp, exitC) = gorgeEx(ccmd) + echo outp + doAssert exitC == exitCode, $exitC + doAssert outp.contains(output), outp + +var + cmd = "nim c -f" + rcmd = " -r lzma.nim" + exp = "liblzma version = " + +when defined(linux): + testCall(cmd & rcmd, "No build files found", 1) + + # stdlib + testCall(cmd & " -d:lzmaStd" & rcmd, exp, 0) + testCall(cmd & " -d:lzmaStd -d:lzmaStatic" & rcmd, exp, 0) + + # git + testCall(cmd & " -d:lzmaGit" & rcmd, exp, 0) + testCall(cmd & " -d:lzmaGit -d:lzmaStatic" & rcmd, exp, 0, delete = false) + + # git tag + testCall(cmd & " -d:lzmaGit -d:lzmaVersion=v5.2.0" & rcmd, exp & "5.2.0", 0) + testCall(cmd & " -d:lzmaGit -d:lzmaStatic -d:lzmaVersion=v5.2.0" & rcmd, exp & "5.2.0", 0, delete = false) + testCall("cd build/liblzma && git branch", "v5.2.0", 0, delete = false) + + # dl + testCall(cmd & " -d:lzmaDL" & rcmd, "Need version", 1) + testCall(cmd & " -d:lzmaDL -d:lzmaVersion=v5.2.4" & rcmd, exp & "5.2.4", 0) + testCall(cmd & " -d:lzmaDL -d:lzmaStatic -d:lzmaVersion=v5.2.4" & rcmd, exp & "5.2.4", 0, delete = false) diff --git a/tests/lzma.nim b/tests/lzma.nim new file mode 100644 index 0000000..0cb92f5 --- /dev/null +++ b/tests/lzma.nim @@ -0,0 +1,41 @@ +import os, strutils + +import nimterop/[build, cimport] + +const + baseDir = currentSourcePath.parentDir()/"build/liblzma" + +static: + cDebug() + +getHeader( + "lzma.h", + giturl = "https://github.com/xz-mirror/xz", + dlurl = "https://github.com/xz-mirror/xz/archive/$1.zip", + outdir = baseDir, + conFlags = "--disable-xz --disable-xzdec --disable-lzmadec --disable-lzmainfo" +) + +cPlugin: + import strutils + + proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = + sym.name = sym.name.strip(chars = {'_'}) + +cOverride: + type + lzma_internal = object + lzma_index = object + lzma_index_hash = object + + lzma_options_lzma = object + lzma_stream_flags = object + lzma_block = object + lzma_index_iter = object + +when not defined(lzmaStatic): + cImport(lzmaPath, recurse = true, dynlib = "lzmaLPath") +else: + cImport(lzmaPath, recurse = true) + +echo "liblzma version = " & $lzma_version_string() \ No newline at end of file -- cgit v1.2.3 From 6bc0c4aa3b82a0ccd3144530b81a5cd922dc1bb3 Mon Sep 17 00:00:00 2001 From: Ganesh Viswanathan Date: Wed, 4 Sep 2019 00:35:33 -0500 Subject: OSX support for getHeader, handle symlinks --- tests/getheader.nims | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/getheader.nims b/tests/getheader.nims index 57584a6..6d0f73a 100644 --- a/tests/getheader.nims +++ b/tests/getheader.nims @@ -20,7 +20,7 @@ var rcmd = " -r lzma.nim" exp = "liblzma version = " -when defined(linux): +when defined(posix): testCall(cmd & rcmd, "No build files found", 1) # stdlib -- cgit v1.2.3 From 2049787f435440a51c7989ca9939a89d9b2aeff6 Mon Sep 17 00:00:00 2001 From: Ganesh Viswanathan Date: Fri, 6 Sep 2019 11:57:14 -0700 Subject: More archive support, Windows lzma test --- tests/getheader.nims | 8 ++++---- tests/lzma.nim | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/getheader.nims b/tests/getheader.nims index 6d0f73a..840a114 100644 --- a/tests/getheader.nims +++ b/tests/getheader.nims @@ -36,7 +36,7 @@ when defined(posix): testCall(cmd & " -d:lzmaGit -d:lzmaStatic -d:lzmaVersion=v5.2.0" & rcmd, exp & "5.2.0", 0, delete = false) testCall("cd build/liblzma && git branch", "v5.2.0", 0, delete = false) - # dl - testCall(cmd & " -d:lzmaDL" & rcmd, "Need version", 1) - testCall(cmd & " -d:lzmaDL -d:lzmaVersion=v5.2.4" & rcmd, exp & "5.2.4", 0) - testCall(cmd & " -d:lzmaDL -d:lzmaStatic -d:lzmaVersion=v5.2.4" & rcmd, exp & "5.2.4", 0, delete = false) +# dl +testCall(cmd & " -d:lzmaDL" & rcmd, "Need version", 1) +testCall(cmd & " -d:lzmaDL -d:lzmaVersion=5.2.4" & rcmd, exp & "5.2.4", 0) +testCall(cmd & " -d:lzmaDL -d:lzmaStatic -d:lzmaVersion=5.2.4" & rcmd, exp & "5.2.4", 0, delete = false) diff --git a/tests/lzma.nim b/tests/lzma.nim index 0cb92f5..422f94d 100644 --- a/tests/lzma.nim +++ b/tests/lzma.nim @@ -11,7 +11,7 @@ static: getHeader( "lzma.h", giturl = "https://github.com/xz-mirror/xz", - dlurl = "https://github.com/xz-mirror/xz/archive/$1.zip", + dlurl = "https://tukaani.org/xz/xz-$1.tar.gz", outdir = baseDir, conFlags = "--disable-xz --disable-xzdec --disable-lzmadec --disable-lzmainfo" ) -- cgit v1.2.3 From b0447677f1e02ec7d6b070e374e5e92b3ad0ce51 Mon Sep 17 00:00:00 2001 From: Ganesh Viswanathan Date: Mon, 9 Sep 2019 15:33:44 -0700 Subject: Build pre-hook, altNames, uInt, getType() calls, add zlib test Fix subdir header, static lib name, [u]int[\d]+ --- tests/getheader.nims | 46 +++++++++++++++++++++++++---------- tests/zlib.nim | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 13 deletions(-) create mode 100644 tests/zlib.nim (limited to 'tests') diff --git a/tests/getheader.nims b/tests/getheader.nims index 840a114..e489380 100644 --- a/tests/getheader.nims +++ b/tests/getheader.nims @@ -3,6 +3,7 @@ import strutils proc testCall(cmd, output: string, exitCode: int, delete = true) = if delete: rmDir("build/liblzma") + rmDir("build/zlib") echo cmd var ccmd = @@ -17,26 +18,45 @@ proc testCall(cmd, output: string, exitCode: int, delete = true) = var cmd = "nim c -f" - rcmd = " -r lzma.nim" - exp = "liblzma version = " + lrcmd = " -r lzma.nim" + zrcmd = " -r zlib.nim" + lexp = "liblzma version = " + zexp = "zlib version = " -when defined(posix): - testCall(cmd & rcmd, "No build files found", 1) +testCall(cmd & lrcmd, "No build files found", 1) +when defined(posix): # stdlib - testCall(cmd & " -d:lzmaStd" & rcmd, exp, 0) - testCall(cmd & " -d:lzmaStd -d:lzmaStatic" & rcmd, exp, 0) + testCall(cmd & " -d:lzmaStd" & lrcmd, lexp, 0) + testCall(cmd & " -d:lzmaStd -d:lzmaStatic" & lrcmd, lexp, 0) + + when not defined(osx): + testCall(cmd & " -d:zlibStd" & zrcmd, zexp, 0) + testCall(cmd & " -d:zlibStd -d:zlibStatic" & zrcmd, zexp, 0) # git - testCall(cmd & " -d:lzmaGit" & rcmd, exp, 0) - testCall(cmd & " -d:lzmaGit -d:lzmaStatic" & rcmd, exp, 0, delete = false) + testCall(cmd & " -d:lzmaGit" & lrcmd, lexp, 0) + testCall(cmd & " -d:lzmaGit -d:lzmaStatic" & lrcmd, lexp, 0, delete = false) # git tag - testCall(cmd & " -d:lzmaGit -d:lzmaVersion=v5.2.0" & rcmd, exp & "5.2.0", 0) - testCall(cmd & " -d:lzmaGit -d:lzmaStatic -d:lzmaVersion=v5.2.0" & rcmd, exp & "5.2.0", 0, delete = false) + testCall(cmd & " -d:lzmaGit -d:lzmaSetVer=v5.2.0" & lrcmd, lexp & "5.2.0", 0) + testCall(cmd & " -d:lzmaGit -d:lzmaStatic -d:lzmaSetVer=v5.2.0" & lrcmd, lexp & "5.2.0", 0, delete = false) testCall("cd build/liblzma && git branch", "v5.2.0", 0, delete = false) +# git +testCall(cmd & " -d:zlibGit" & zrcmd, zexp, 0) +testCall(cmd & " -d:zlibGit -d:zlibStatic" & zrcmd, zexp, 0, delete = false) + +# git tag +testCall(cmd & " -d:zlibGit -d:zlibSetVer=v1.2.10" & zrcmd, zexp & "1.2.10", 0) +testCall(cmd & " -d:zlibGit -d:zlibStatic -d:zlibSetVer=v1.2.10" & zrcmd, zexp & "1.2.10", 0, delete = false) +testCall("cd build/zlib && git branch", "v1.2.10", 0, delete = false) + +# dl +testCall(cmd & " -d:lzmaDL" & lrcmd, "Need version", 1) +testCall(cmd & " -d:lzmaDL -d:lzmaSetVer=5.2.4" & lrcmd, lexp & "5.2.4", 0) +testCall(cmd & " -d:lzmaDL -d:lzmaStatic -d:lzmaSetVer=5.2.4" & lrcmd, lexp & "5.2.4", 0, delete = false) + # dl -testCall(cmd & " -d:lzmaDL" & rcmd, "Need version", 1) -testCall(cmd & " -d:lzmaDL -d:lzmaVersion=5.2.4" & rcmd, exp & "5.2.4", 0) -testCall(cmd & " -d:lzmaDL -d:lzmaStatic -d:lzmaVersion=5.2.4" & rcmd, exp & "5.2.4", 0, delete = false) +testCall(cmd & " -d:zlibDL -d:zlibSetVer=1.2.11" & zrcmd, zexp & "1.2.11", 0) +testCall(cmd & " -d:zlibDL -d:zlibStatic -d:zlibSetVer=1.2.11" & zrcmd, zexp & "1.2.11", 0, delete = false) diff --git a/tests/zlib.nim b/tests/zlib.nim new file mode 100644 index 0000000..f2cc16a --- /dev/null +++ b/tests/zlib.nim @@ -0,0 +1,68 @@ +import os, strutils + +import nimterop/[build, cimport] + +const + baseDir = currentSourcePath.parentDir()/"build"/"zlib" + +static: + cDebug() + +proc zlibPreBuild(outdir, path: string) = + let + mf = outdir / "Makefile" + if mf.fileExists(): + # Delete default Makefile + if mf.readFile().contains("configure first"): + mf.rmFile() + when defined(windows): + # Fix static lib name on Windows + setCmakeLibName(outdir, "zlibstatic", prefix = "lib", oname = "zlib", suffix = ".a") + +getHeader( + "zlib.h", + giturl = "https://github.com/madler/zlib", + dlurl = "http://zlib.net/zlib-$1.tar.gz", + outdir = baseDir, + altNames = "z" +) + +cPlugin: + import regex, strutils + + proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = + sym.name = sym.name.replace(re"_[_]+", "_").strip(chars = {'_'}) + +cOverride: + type + voidpf = ptr object + voidpc = ptr object + voidp = ptr object + uLongf = culong + z_size_t = culong + z_crc_t = culong + alloc_func* {.importc.} = proc(opaque: voidpf, items, size: uint) {.cdecl.} + Bytef {.importc.} = object + + when defined(posix): + type + pthread_mutex_s = object + pthread_cond_s = object + pthread_rwlock_arch_t = object + extension = object + fd_set = object + +when defined(posix): + static: + cSkipSymbol(@["u_int8_t", "u_int16_t", "u_int32_t", "u_int64_t"]) + +when defined(zlibGit) or defined(zlibDL): + when dirExists(baseDir / "build"): + cIncludeDir(baseDir / "build") + +when not defined(zlibStatic): + cImport(zlibPath, recurse = true, dynlib = "zlibLPath") +else: + cImport(zlibPath, recurse = true) + +echo "zlib version = " & $zlibVersion() -- cgit v1.2.3 From f21315ff1747ce0814f3a1e480f7b2e01ad9a278 Mon Sep 17 00:00:00 2001 From: Ganesh Viswanathan Date: Mon, 23 Sep 2019 14:52:34 -0500 Subject: More build helpers --- tests/zlib.nim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/zlib.nim b/tests/zlib.nim index f2cc16a..6da7cdc 100644 --- a/tests/zlib.nim +++ b/tests/zlib.nim @@ -57,8 +57,8 @@ when defined(posix): cSkipSymbol(@["u_int8_t", "u_int16_t", "u_int32_t", "u_int64_t"]) when defined(zlibGit) or defined(zlibDL): - when dirExists(baseDir / "build"): - cIncludeDir(baseDir / "build") + when dirExists(baseDir / "buildcache"): + cIncludeDir(baseDir / "buildcache") when not defined(zlibStatic): cImport(zlibPath, recurse = true, dynlib = "zlibLPath") -- cgit v1.2.3 From fad9fd78f30eda750e615f69dd88f28158effbce Mon Sep 17 00:00:00 2001 From: Ganesh Viswanathan Date: Wed, 25 Sep 2019 21:15:14 -0500 Subject: Add env var support for defines --- tests/getheader.nims | 8 ++++---- tests/lzma.nim | 9 +++++++-- tests/zlib.nim | 9 +++++++-- 3 files changed, 18 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/getheader.nims b/tests/getheader.nims index e489380..c122484 100644 --- a/tests/getheader.nims +++ b/tests/getheader.nims @@ -27,8 +27,8 @@ testCall(cmd & lrcmd, "No build files found", 1) when defined(posix): # stdlib - testCall(cmd & " -d:lzmaStd" & lrcmd, lexp, 0) - testCall(cmd & " -d:lzmaStd -d:lzmaStatic" & lrcmd, lexp, 0) + testCall(cmd & " -d:envTest" & lrcmd, lexp, 0) + testCall(cmd & " -d:envTestStatic" & lrcmd, lexp, 0) when not defined(osx): testCall(cmd & " -d:zlibStd" & zrcmd, zexp, 0) @@ -44,8 +44,8 @@ when defined(posix): testCall("cd build/liblzma && git branch", "v5.2.0", 0, delete = false) # git -testCall(cmd & " -d:zlibGit" & zrcmd, zexp, 0) -testCall(cmd & " -d:zlibGit -d:zlibStatic" & zrcmd, zexp, 0, delete = false) +testCall(cmd & " -d:envTest" & zrcmd, zexp, 0) +testCall(cmd & " -d:envTestStatic" & zrcmd, zexp, 0, delete = false) # git tag testCall(cmd & " -d:zlibGit -d:zlibSetVer=v1.2.10" & zrcmd, zexp & "1.2.10", 0) diff --git a/tests/lzma.nim b/tests/lzma.nim index 422f94d..32f9fa0 100644 --- a/tests/lzma.nim +++ b/tests/lzma.nim @@ -8,6 +8,11 @@ const static: cDebug() +when defined(envTest): + setDefines(@["lzmaStd"]) +elif defined(envTestStatic): + setDefines(@["lzmaStd", "lzmaStatic"]) + getHeader( "lzma.h", giturl = "https://github.com/xz-mirror/xz", @@ -33,9 +38,9 @@ cOverride: lzma_block = object lzma_index_iter = object -when not defined(lzmaStatic): +when not lzmaStatic: cImport(lzmaPath, recurse = true, dynlib = "lzmaLPath") else: cImport(lzmaPath, recurse = true) -echo "liblzma version = " & $lzma_version_string() \ No newline at end of file +echo "liblzma version = " & $lzma_version_string() diff --git a/tests/zlib.nim b/tests/zlib.nim index 6da7cdc..371d41f 100644 --- a/tests/zlib.nim +++ b/tests/zlib.nim @@ -19,6 +19,11 @@ proc zlibPreBuild(outdir, path: string) = # Fix static lib name on Windows setCmakeLibName(outdir, "zlibstatic", prefix = "lib", oname = "zlib", suffix = ".a") +when defined(envTest): + setDefines(@["zlibGit"]) +elif defined(envTestStatic): + setDefines(@["zlibGit", "zlibStatic"]) + getHeader( "zlib.h", giturl = "https://github.com/madler/zlib", @@ -56,11 +61,11 @@ when defined(posix): static: cSkipSymbol(@["u_int8_t", "u_int16_t", "u_int32_t", "u_int64_t"]) -when defined(zlibGit) or defined(zlibDL): +when zlibGit or zlibDL: when dirExists(baseDir / "buildcache"): cIncludeDir(baseDir / "buildcache") -when not defined(zlibStatic): +when not zlibStatic: cImport(zlibPath, recurse = true, dynlib = "zlibLPath") else: cImport(zlibPath, recurse = true) -- cgit v1.2.3 From 86aea481ac3433ddeae7832fc9749f99e12d5f7b Mon Sep 17 00:00:00 2001 From: Ganesh Viswanathan Date: Tue, 1 Oct 2019 11:33:24 -0500 Subject: Add retries for file ops --- tests/lzma.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/lzma.nim b/tests/lzma.nim index 32f9fa0..2368b55 100644 --- a/tests/lzma.nim +++ b/tests/lzma.nim @@ -3,7 +3,7 @@ import os, strutils import nimterop/[build, cimport] const - baseDir = currentSourcePath.parentDir()/"build/liblzma" + baseDir = currentSourcePath.parentDir()/"build"/"liblzma" static: cDebug() -- cgit v1.2.3