fix tinygo build; add tinygo test to test pipeline if available

This commit is contained in:
Patricio Whittingslow
2026-04-11 19:13:13 -03:00
parent 54bc52d9d8
commit 70f2fe66b9
2 changed files with 35 additions and 3 deletions
+13 -3
View File
@@ -104,9 +104,11 @@ func (s StackGo) SocketNetip(ctx context.Context, network string, family, sotype
return nil, err
}
uc := udpconn{
Conn: &conn,
localAddr: net.UDPAddrFromAddrPort(laddr),
raddr: net.UDPAddrFromAddrPort(raddr),
Conn: &conn,
// TODO: use udpaddr until UDPAddrFromAddrPort added to tinygo.
// https://github.com/tinygo-org/net/issues/45
localAddr: udpaddr(laddr),
raddr: udpaddr(raddr),
}
return uc, nil
case "tcp", "tcp4":
@@ -244,3 +246,11 @@ var _ net.Conn = udpconn{}
func (c udpconn) LocalAddr() net.Addr { return c.localAddr }
func (c udpconn) RemoteAddr() net.Addr { return c.raddr }
func udpaddr(addr netip.AddrPort) net.Addr {
return &net.UDPAddr{
IP: addr.Addr().AsSlice(),
Zone: addr.Addr().Zone(),
Port: int(addr.Port()),
}
}
+22
View File
@@ -0,0 +1,22 @@
//go:build !tinygo
// Exclude tinygo compiler from build since exec package and t.Skip() are unimplemented.
// Also: wouldn't including tinygo cause a recursive call to tinygo test?
package xnet
import (
"os/exec"
"testing"
)
func TestTinyGoTest(t *testing.T) {
if exec.Command("tinygo", "version").Run() != nil {
t.Skip("tinygo not installed")
}
// This takes a long time. Consider running only important
// tests with -run=TestXxx flag: `go test ./... -run=TestXxx`
out, err := exec.Command("tinygo", "test", ".").CombinedOutput()
if err != nil {
t.Fatal("tinygo failed to test:", err, "\n", string(out))
}
}