Files
zeekay 7cf87b230b node-unified is the node
The module already called itself github.com/luxfi/node while containing no node
in Go: cmd/luxd was twenty-one lines that printed the size of a few types, and
the Go column of the matrix measured a VM plugin. A repo that fetches the thing
it claims to be has not replaced it, so the Go sources move in — 1515 files,
the daemon and everything under it — and the build reaches outside this module
for nothing.

Rust and C++ sit beside it unchanged and are still measured against it by the
differential. That is the point of one repo: the reference implementation and
the two ports are the same checkout, so parity is a thing you can run rather
than a thing you assert.

Verified: builds, and the closure carries no lux-private — checked at build time
rather than believed. The daemon starts twelve chains on a local network
(P X C Q Z A B G K M F, plus D through its plugin) and reports healthy.
2026-09-07 16:15:25 -07:00

71 lines
1.5 KiB
Go

// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package socket
import (
"net"
"testing"
"github.com/luxfi/log"
"github.com/stretchr/testify/require"
)
func TestSocketSendAndReceive(t *testing.T) {
require := require.New(t)
var (
connCh chan net.Conn
socketName = "/tmp/pipe-test.sock"
msg = append([]byte("lux"), make([]byte, 1000000)...)
msgLen = int64(len(msg))
)
// Create socket and client; wait for client to connect
socket := NewSocket(socketName, log.New())
socket.accept, connCh = newTestAcceptFn(t)
require.NoError(socket.Listen())
client, err := Dial(socketName)
require.NoError(err)
<-connCh
// Start sending in the background
go func() {
for {
socket.Send(msg)
}
}()
// Receive message and compare it to what was sent
receivedMsg, err := client.Recv()
require.NoError(err)
require.Equal(msg, receivedMsg)
// Test max message size
client.SetMaxMessageSize(msgLen)
_, err = client.Recv()
require.NoError(err)
client.SetMaxMessageSize(msgLen - 1)
_, err = client.Recv()
require.ErrorIs(err, ErrMessageTooLarge)
}
// newTestAcceptFn creates a new acceptFn and a channel that receives all new
// connections
func newTestAcceptFn(t *testing.T) (acceptFn, chan net.Conn) {
connCh := make(chan net.Conn)
return func(s *Socket, l net.Listener) {
conn, err := l.Accept()
require.NoError(t, err)
s.connLock.Lock()
s.conns[conn] = struct{}{}
s.connLock.Unlock()
connCh <- conn
}, connCh
}