Skip to content

Commit d4c4322

Browse files
committed
test
1 parent 20e391e commit d4c4322

3 files changed

Lines changed: 50 additions & 11 deletions

File tree

.github/workflows/nix-build.yml

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,50 @@ jobs:
1010
test:
1111
strategy:
1212
matrix:
13-
os: [ubuntu-latest, macos-latest]
13+
os: [ubuntu-latest, macos-latest, windows-latest]
1414
runs-on: ${{ matrix.os }}
1515
steps:
1616
- uses: actions/checkout@v6
1717
with:
1818
fetch-depth: 0
19+
1920
- name: Install Nix
21+
if: runner.os != 'Windows'
2022
uses: DeterminateSystems/nix-installer-action@main
23+
2124
- name: Run checks
25+
if: runner.os != 'Windows'
2226
run: nix flake check -Lvv --log-format bar-with-logs
27+
28+
- name: Set up windows msvc compiler
29+
uses: step-security/msvc-dev-cmd@v1
30+
- name: Setup Lua (only 1 version because windows)
31+
if: runner.os == 'Windows'
32+
uses: leafo/gh-actions-lua@v13
33+
with:
34+
luaVersion: "5.4"
35+
36+
- name: Install LuaRocks
37+
if: runner.os == 'Windows'
38+
shell: powershell
39+
run: |
40+
Invoke-WebRequest `
41+
-Uri "https://luarocks.github.io/luarocks/releases/luarocks-3.13.0-windows-64.zip" `
42+
-OutFile "luarocks.zip"
43+
44+
$dir = Join-Path $env:RUNNER_TEMP "luarocks"
45+
New-Item -ItemType Directory -Force -Path "$dir"
46+
Expand-Archive luarocks.zip -DestinationPath "$dir"
47+
$root = Join-Path $dir "luarocks-3.13.0-windows-64"
48+
$link = "./.lua/bin"
49+
New-Item -ItemType SymbolicLink -Target "$root/luarocks.exe" -Path "$link/luarocks.exe"
50+
51+
- name: Build via luarocks
52+
if: runner.os == 'Windows'
53+
run: |
54+
tree /f .
55+
luarocks make --verbose
56+
tree /f .
57+
- name: Test via luarocks
58+
if: runner.os == 'Windows'
59+
run: luarocks test --verbose

osenv.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ static void clear_process_env(void) {
1919

2020
size_t len = (size_t)(eq - p);
2121

22-
char key[len + 1];
22+
char *key = (char *)malloc(len + 1);
23+
if (!key) continue;
2324
memcpy(key, p, len);
2425
key[len] = '\0';
2526

2627
SetEnvironmentVariableA(key, NULL);
28+
free(key);
2729
}
2830
FreeEnvironmentStringsA(env);
2931
#else

test.lua

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,6 @@ end
3232

3333
---
3434

35-
test("osenv: environment clearing and restoration", function()
36-
local osenv = require("osenv")
37-
local oldenv = osenv()
38-
ok(type(oldenv) == "table", "osenv() should return a table")
39-
osenv({}, true)
40-
ok(next(osenv()) == nil, "env should be empty after osenv({}, true)")
41-
osenv(oldenv)
42-
end)
43-
4435
test("osenv: get and set with various types", function()
4536
local osenv = require("osenv")
4637
local oldenv = osenv()
@@ -124,6 +115,15 @@ test("set if unset tests __call", function()
124115
ok(os.getenv("TESTVARIABLE2") == nil and os.getenv("TESTVARIABLE") == nil, "both vars should be nil after restore")
125116
end)
126117

118+
test("osenv: environment clearing and restoration", function()
119+
local osenv = require("osenv")
120+
local oldenv = osenv()
121+
ok(type(oldenv) == "table", "osenv() should return a table")
122+
osenv({}, true)
123+
ok(next(osenv()) == nil, "env should be empty after osenv({}, true)")
124+
osenv(oldenv)
125+
end)
126+
127127
---
128128

129129
test.await(function(self)

0 commit comments

Comments
 (0)