From d2e6629bdc7a0b7c075a0df3ba30ff2925bf0b1f Mon Sep 17 00:00:00 2001 From: Theodor Rauch Date: Mon, 13 Oct 2025 12:23:16 +0200 Subject: [PATCH 1/4] feat: unuttests using libcoap coapo-client. GET works with and without token, post and put only with token. --- udp/server_libcoap_test.go | 382 +++++++++++++++++++++++++++++++++++++ udp/testdata/big.txt | 1 + 2 files changed, 383 insertions(+) create mode 100644 udp/server_libcoap_test.go create mode 100644 udp/testdata/big.txt diff --git a/udp/server_libcoap_test.go b/udp/server_libcoap_test.go new file mode 100644 index 00000000..f6c56c69 --- /dev/null +++ b/udp/server_libcoap_test.go @@ -0,0 +1,382 @@ +package udp + +import ( + "bytes" + "embed" + "fmt" + "github.com/plgd-dev/go-coap/v3/message" + "github.com/plgd-dev/go-coap/v3/message/codes" + "github.com/plgd-dev/go-coap/v3/mux" + coapNet "github.com/plgd-dev/go-coap/v3/net" + "github.com/plgd-dev/go-coap/v3/options" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "math/rand" + "os/exec" + "sync" + "testing" +) + +//go:embed testdata/big.txt +var assets embed.FS + +func TestConnGetBlockwise(t *testing.T) { + + bigPayload10KiB, err := assets.ReadFile("testdata/big.txt") + require.NoError(t, err) + require.NotEmpty(t, bigPayload10KiB) + + type args struct { + path string + opts message.Options + typ message.Type + } + tests := []struct { + name string + args args + wantCode codes.Code + wantContentFormat *message.MediaType + wantPayload interface{} + wantErr bool + useToken bool + }{ + { + name: "block-with-token", + args: args{ + path: "/big", + }, + wantCode: codes.Content, + wantContentFormat: &message.TextPlain, + wantPayload: bigPayload10KiB, + wantErr: false, + useToken: true, + }, + { + name: "block-without-token", + args: args{ + path: "/big", + }, + wantCode: codes.Content, + wantContentFormat: &message.TextPlain, + wantPayload: bigPayload10KiB, + wantErr: false, + useToken: false, + }, + } + + // verify that the binary coap-client is installed + _, err = exec.LookPath("coap-client") + if err != nil { + t.Error("coap-client not found in PATH") + return + } + + l, err := coapNet.NewListenUDP("udp", "[::]:5685") + require.NoError(t, err) + defer func() { + errC := l.Close() + require.NoError(t, errC) + }() + var wg sync.WaitGroup + defer wg.Wait() + + m := mux.NewRouter() + + err = m.Handle("/big", mux.HandlerFunc(func(w mux.ResponseWriter, r *mux.Message) { + assert.Equal(t, codes.GET, r.Code()) + errS := w.SetResponse(codes.Content, message.AppOctets, bytes.NewReader([]byte(bigPayload10KiB))) + require.NoError(t, errS) + require.NotEmpty(t, w.Conn()) + require.Equal(t, message.Confirmable, r.Type()) + })) + require.NoError(t, err) + + s := NewServer(options.WithMux(m)) + defer s.Stop() + + wg.Add(1) + go func() { + defer wg.Done() + errS := s.Serve(l) + assert.NoError(t, errS) + }() + + cc, err := Dial(l.LocalAddr().String()) + require.NoError(t, err) + defer func() { + errC := cc.Close() + require.NoError(t, errC) + <-cc.Done() + }() + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + + laddr := l.LocalAddr().String() + + receivedBody, err := sendCoAPRequestLibCoAP(laddr, "get", tt.args.path, false, tt.useToken) + + if tt.wantErr { + require.Error(t, err) + return + } else { + require.NoError(t, err) + } + + if tt.wantPayload != nil { + if wantPayloadBytes, ok := tt.wantPayload.([]byte); ok { + // add 1 for the extra newline added by coap-client + require.Len(t, receivedBody, len(wantPayloadBytes)+1) + require.Equal(t, wantPayloadBytes, receivedBody[0:len(wantPayloadBytes)]) + } + } + + }) + } +} + +func TestConnPutBlockwise(t *testing.T) { + bigPayload10KiB, err := assets.ReadFile("testdata/big.txt") + require.NoError(t, err) + require.NotEmpty(t, bigPayload10KiB) + + type args struct { + path string + opts message.Options + typ message.Type + } + tests := []struct { + name string + args args + wantCode codes.Code + wantErr bool + useToken bool + wantPayload []byte + }{ + { + name: "block-put-with-token", + args: args{ + path: "/big", + }, + wantCode: codes.Changed, + wantErr: false, + useToken: true, + }, + { + name: "block-put-without-token", + args: args{ + path: "/big", + }, + wantCode: codes.Changed, + wantErr: false, + useToken: false, + }, + } + + _, err = exec.LookPath("coap-client") + if err != nil { + t.Error("coap-client not found in PATH") + return + } + + l, err := coapNet.NewListenUDP("udp", "[::]:5686") + require.NoError(t, err) + defer func() { + errC := l.Close() + require.NoError(t, errC) + }() + var wg sync.WaitGroup + defer wg.Wait() + + m := mux.NewRouter() + + err = m.Handle("/big", mux.HandlerFunc(func(w mux.ResponseWriter, r *mux.Message) { + assert.Equal(t, codes.PUT, r.Code()) + errS := w.SetResponse(codes.Changed, message.TextPlain, nil) + received, err := r.ReadBody() + assert.NoError(t, err) + assert.Equal(t, bigPayload10KiB, received) + assert.NoError(t, errS) + assert.NotEmpty(t, w.Conn()) + assert.Equal(t, message.Confirmable, r.Type()) + })) + require.NoError(t, err) + + s := NewServer(options.WithMux(m)) + defer s.Stop() + + wg.Add(1) + go func() { + defer wg.Done() + errS := s.Serve(l) + assert.NoError(t, errS) + }() + + cc, err := Dial(l.LocalAddr().String()) + require.NoError(t, err) + defer func() { + errC := cc.Close() + require.NoError(t, errC) + <-cc.Done() + }() + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + laddr := l.LocalAddr().String() + _, err := sendCoAPRequestLibCoAP(laddr, "put", tt.args.path, true, tt.useToken) + if tt.wantErr { + require.Error(t, err) + return + } else { + require.NoError(t, err) + } + + }) + } +} + +func TestConnPostBlockwise(t *testing.T) { + bigPayload10KiB, err := assets.ReadFile("testdata/big.txt") + require.NoError(t, err) + require.NotEmpty(t, bigPayload10KiB) + + type args struct { + path string + opts message.Options + typ message.Type + } + tests := []struct { + name string + args args + wantCode codes.Code + wantErr bool + useToken bool + wantPayload []byte + }{ + { + name: "block-post-with-token", + args: args{ + path: "/big", + }, + wantCode: codes.Content, + wantErr: false, + useToken: true, + wantPayload: []byte(bigPayload10KiB), + }, + { + name: "block-post-without-token", + args: args{ + path: "/big", + }, + wantCode: codes.Content, + wantErr: false, + useToken: false, + wantPayload: []byte(bigPayload10KiB), + }, + } + + _, err = exec.LookPath("coap-client") + if err != nil { + t.Error("coap-client not found in PATH") + return + } + + l, err := coapNet.NewListenUDP("udp", "[::]:5687") + require.NoError(t, err) + defer func() { + errC := l.Close() + require.NoError(t, errC) + }() + var wg sync.WaitGroup + defer wg.Wait() + + m := mux.NewRouter() + + err = m.Handle("/big", mux.HandlerFunc(func(w mux.ResponseWriter, r *mux.Message) { + assert.Equal(t, codes.POST, r.Code()) + received, err := r.ReadBody() + errS := w.SetResponse(codes.Content, message.TextPlain, bytes.NewReader([]byte(bigPayload10KiB))) + assert.NoError(t, err) + assert.Equal(t, bigPayload10KiB, received) + assert.NoError(t, errS) + assert.NotEmpty(t, w.Conn()) + assert.Equal(t, message.Confirmable, r.Type()) + })) + require.NoError(t, err) + + s := NewServer(options.WithMux(m)) + defer s.Stop() + + wg.Add(1) + go func() { + defer wg.Done() + errS := s.Serve(l) + assert.NoError(t, errS) + }() + + cc, err := Dial(l.LocalAddr().String()) + require.NoError(t, err) + defer func() { + errC := cc.Close() + require.NoError(t, errC) + <-cc.Done() + }() + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + laddr := l.LocalAddr().String() + receivedBody, err := sendCoAPRequestLibCoAP(laddr, "post", tt.args.path, true, tt.useToken) + if tt.wantErr { + require.Error(t, err) + return + } else { + require.NoError(t, err) + } + if tt.wantPayload != nil { + // add 1 for the extra newline added by coap-client + require.Len(t, receivedBody, len(tt.wantPayload)+1) + require.Equal(t, tt.wantPayload, receivedBody[0:len(tt.wantPayload)]) + } + }) + } +} + +func sendCoAPRequestLibCoAP(address string, method string, path string, payload bool, token bool) ([]byte, error) { + // Check if coap-client is available + bigPayload10KiB, err := assets.ReadFile("testdata/big.txt") + if err != nil { + return nil, fmt.Errorf("cannot read big payload: %v", err) + } + coapClientPath, err := exec.LookPath("coap-client") + if err != nil { + return nil, fmt.Errorf("coap-client not found in PATH") + } + + // Build coap-client command arguments + var args []string + args = append(args, "-m", method) + if token { + rand.Uint64() + args = append(args, "-T", fmt.Sprintf("%d", rand.Uint64())) + } + if payload { + args = append(args, "-b", "1024") + args = append(args, "-e", string(bigPayload10KiB)) + } + // Construct URI + uri := fmt.Sprintf("coap://%s%s", address, path) + args = append(args, uri) + + // Prepare command + cmd := exec.Command(coapClientPath, args...) + var out bytes.Buffer + cmd.Stdout = &out + cmd.Stderr = &out + + // Execute command + err = cmd.Run() + if err != nil { + return nil, fmt.Errorf("coap-client error: %v, output: %s", err, out.String()) + } + return out.Bytes(), nil +} diff --git a/udp/testdata/big.txt b/udp/testdata/big.txt new file mode 100644 index 00000000..88d47453 --- /dev/null +++ b/udp/testdata/big.txt @@ -0,0 +1 @@ +8907533763595464710221607782833403817963896568079604120868422195829245904149921022010117672675011936150692894680111576817972442244632672758898527798766326186965189573496725417576843236332384515325066967967084729236662659424427203830789178855960389888596716071610006455882935846699846650201997778281489677479705270206081029219805564358992416465824219925690387549734493621608053123995577601746455214843566650563572386180040461868422681275207659774993105775730605629494354700078126283980989992335408659158421004045160720410218892782153917915938163263152750197199304506126821048289291640271668334925747202569241057032162874410383132294066490611364555695035898406509927638700626257215313570202242824713791895644852354298264818712226159722061411094735693315006827701258353222903354117670733888936547892496893685415206576117391511164434590066914962507872291607422761432683270875459153533652284306970616530322571286936751979637851359030657540649747647283544275697965879550870371044054664298592239900461215946760090595575544996601843789019146082364995450732234117832008327233639969384804228136267797560757027220028787351986074293141934400209473676727108898649805065447765596737663367889822373357693073905863776738382596193584940121883971020940292125731296182093704825260513424135582178831244406040516588096108309029134822401818513505740695550261354254202973752753820320279087360947196559184296212413103638364894919029566920377899414662471117560631737437118254937509904831990953546322519487355814435405711478513357670545141748599963903648510317523533396855279377541510586330106024203313733930155361246504300758017863300234725493948677476253351740254469522962295669204305447952824810032268893825488928747429925263799090622391747617047596391321066536712638557732375756808674452739515541530480306655986933938636270453229308638474684467662944328478215710795324905451678723290455394099490159342477919225324690294360637544895122511844830195608616837465831546133034981568077467602730198351959309161871476349669332132752767560011321332624699332725304370589521682784449705303919999267803733573563697085551153378979854593006577548089909981713543280760460718397267935290762605259710949454461156337573553214017376260290079026663425411638665625520473330518042129266223302824109677566961658588904037500671588401981153695624058523340063794679404590565389731620785595885667126269555081874683243129560670652628916349630328692621288716842439079295659578841841121454120413491068989115858630542130200218283594695012061423897090440618342185606898317508142318441026446043790904280702857972024624076580110973540226252033481173589729845768710180570354440036228770402002197412438451317948542973737928805639594717885125707960410722420619013927721670988954292585653198947600191622461902768863759387563972830508162729801251953866678821015546893324592328605329412503154570657275236887715775692340674320468072326355096528620950907580015178432370630250619077099652347135271138479879076845359715398843494964397133933086075381690735165093205731988171767792192162434248802328545746413699466477206795450424923006992411491757875857543507893281494622581672366428684076408842903975093490490368271551172366611153663502119251412128499322432500850940709954830267709530655015452710045689921953344525963251819795062031097042605516502100119960753438777380005115688600754342294469794421011143409212020462746920765761668632914514995308754416470683869771206630763763154230857789052195071539595673372783190095741993603604351201335431885222855451701487143044552183006933853209704979716208434160389680560396817362087348868632182558538333715494847726439829807889964882762910089850375881423745476187310391961799360728090362454229839544443427957382472543854574578408059717633590545832017424359611076869793966106232481010368341049561785141071357262031544872658358498144994703898548557528147574424763022352777907226588074210096965490437802163159154891797884371607885984519924645150719852298986970682242180937549859931769323892726795180205653285906650158213591969127875848047808086504851046102593343829330333035555016145730729927847041126117949531268973758076776867564692066757398477418017590982438250235356769999184904217804895540691879486372316608032507764483076687953109327044772423691550589509127085703056810888809801992343429647677725213078625344323137570136533993666574069066185597762165272865617351906631969497431308212311746452332753504862154465229148267567603157650864837522534553886985270097153232788988027610115175406874321259157763537412865740424108039072169377720303378766332246377962458304063680128814450946724407116801574253626187659197275242505192433711933768739436192173927190782443576883768473658476996997690398558218656699441901303581912737632512156234121965757392716338541365378912629415243052335399668439507502163446355980903543767249592216399322408202419212222369377162041761009277841855485543067420058762972069153950623398465679032720957279916484559406151650218711928819250789828045527534993496390303311607333534021442951813951440429642829981345709035063666734295338164676114269238076991968263060903866042463997529462945589367524801365231239381745249836014682584665967637021695650558775279373507312276502288192913704549641563930234181992352662722524919831181588645301281211901812809227739350611063384716229639552927985341653916066038316807532847609616432388280087840854192650858315767847384670098616245471021446703260970695523430486870405926491480465478328389802802281318130052139074763712102777228504565265741052198476896513873035147853509815730780215742065579381776109556513929786812445569116654854555475382118214986340739458894466107695213676943377373907796698692951046518244352740538084265795832257807172063093070186154060859633583997786380234594572288736291173122100839468526196310640734777769897119118227701392711561080248625076536303981719830420967909426069927176983706599409138558924049251608743464919960916913881445705812272465068579131973935111750395328926124972644691290951719576270036638589756344942238561520517772439510324469355466298728904323910675736571383874975651235139506527654947738209052410774133284794314291930203096664797322843412410191407162428638571288718091450283219945881615099541961495788620178007409933850077658816577006698223328485235433864284768946459888978216577471216991954029600728719332533152689910541618192516328901013244262399016068427807852548566309280496979911999182419684016875246591793797690229633792506417076858467351849556438458187302880899453526623526863561740174197816717473607704731952584324575934370089161298342265005635681355733041124267109366906725676486016427743761626473104987846106872157445707062414835687945128374662895788253339821668485524192870239729131455251509704130857833825890685170656876482358975911719085482733842182563867869827830825429892202584572599734902980142355435934885788679191295611779549818470603393193497244207841604728857927324270436163186218549600559535375962052162160562274037339636206853812154636551165938337083356552065298018917831445739403967087655507716769518427209931971521627698876822847007615717926620427936559386855655908004357467871015669093148959149361149395017509133658981326562115166591966334272260748252988884334743548854609577160437981794562011820081467900886305992663616821303628709929829428793750735602847557350704402491600870402313666691818619528095780380450597711824896871448094764991406857183765003310046481104033999501529907638198298813885472106597281552804341153088711437564749698919882490368899055879738322292183652206596377212348124543362009698923256525046337263242678473955424912687170758658263457577363384512097898198478161424332180502298403764455021337638270675553891263608087503356415074008640542255965044047385324771966963263687374409541633212667392460170204187585131796962853507077426711467824168304082631795476567999096288740035942548300667423512151966602298084825177276536583611840084076396366583147711965144359625705506980525525822899733826341605535696249601024799830233231598394313707158991933293591544307908666329268933279691545885853378802099882867673292044986061116853831320553485603326418562099086610304726697864321643940148243293713566569997844148131098723329720490178001815906355607469033421867187865687393402700668431734036000881848794463702433895139875112454301830357492596772193947522198674570186704526456729549571516265577693700494558779856230788827522675351529444770941857952762792932080693059509244507062444659367053864980480876549582414301239604607713417984571474999763436066374643155514932821874818105012051756426832019448389121035351347598468069595295510460087171470435326404929402709975923796332728719164431549177167359550610674768579845635910606660014105057756014659971374076298700664707672863675201921478214392703803929960443285807763001864267758239987325290438292970103990998933463052939580256625676152921018937035604237385974487395760437176602948388018261638805259647043228421413136698703550439067660273043566817357530145481570985226058114498674566747547968974751532687661289344415358356535485546744383003326191433106948264124290573059310933492073038085001879980026802445934293276849478243879823347803022317772640095786081634129480780654207612404964114462146952823124601890934461763628627826392674615311380751608882622614308376225040930500390369920058611297275044397276986257434311390181918311047414632344247682062062616481541425085341248928917475316358466069167495102816651704340538836954972801402206262920632498608361466609376815937354746351558384878536347782920530436358737190015582305765404124879103121475909549232645352421401631755122614453624940807860429677835265660762815808343546961259904405838666922615861735247043270283672601831237238457434521877240039227600107682518307801511454839237187901857175156911355939689545806798877289005658224095591083233759771329165528232118948894367458392881297173471855768726126754086195133015685726019497295932058457528142595036451386655561416811096687585502488315874658362449099439868192063303681917995993161431685969345689815394695246096186072665320424126902383281639806078138972689727956078410854300695118816645334889093125102995488077906075105741621894484647197103435941788732306851725218706983706337814198009624212201025856162445 \ No newline at end of file From 3ee65716d7f21907f3d5e508d955eb75e0d5a258 Mon Sep 17 00:00:00 2001 From: Theodor Rauch Date: Mon, 13 Oct 2025 14:05:39 +0200 Subject: [PATCH 2/4] fix: libcoap tests successful, fixed blockwise --- net/blockwise/blockwise.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/net/blockwise/blockwise.go b/net/blockwise/blockwise.go index 574175ec..8e0146e9 100644 --- a/net/blockwise/blockwise.go +++ b/net/blockwise/blockwise.go @@ -800,10 +800,6 @@ func (b *BlockWise[C]) getCachedReceivedMessage(mg *messageGuard, r *pool.Messag //nolint:gocyclo,gocognit func (b *BlockWise[C]) processReceivedMessage(w *responsewriter.ResponseWriter[C], r *pool.Message, maxSzx SZX, next func(w *responsewriter.ResponseWriter[C], r *pool.Message), exchangeKey uint64, blockType message.OptionID, sizeType message.OptionID) error { token := r.Token() - if len(token) == 0 { - next(w, r) - return nil - } if r.Code() == codes.GET || r.Code() == codes.DELETE { next(w, r) return nil From ea979980f759d80a07bbf56d975bd5b59816763f Mon Sep 17 00:00:00 2001 From: Theodor Rauch Date: Mon, 13 Oct 2025 14:14:45 +0200 Subject: [PATCH 3/4] fix: cleanup --- udp/server_libcoap_test.go | 109 +++++++++++++++++++++++++++++-------- udp/testdata/big.txt | 1 - 2 files changed, 87 insertions(+), 23 deletions(-) delete mode 100644 udp/testdata/big.txt diff --git a/udp/server_libcoap_test.go b/udp/server_libcoap_test.go index f6c56c69..468eff1c 100644 --- a/udp/server_libcoap_test.go +++ b/udp/server_libcoap_test.go @@ -2,7 +2,6 @@ package udp import ( "bytes" - "embed" "fmt" "github.com/plgd-dev/go-coap/v3/message" "github.com/plgd-dev/go-coap/v3/message/codes" @@ -17,15 +16,8 @@ import ( "testing" ) -//go:embed testdata/big.txt -var assets embed.FS - func TestConnGetBlockwise(t *testing.T) { - bigPayload10KiB, err := assets.ReadFile("testdata/big.txt") - require.NoError(t, err) - require.NotEmpty(t, bigPayload10KiB) - type args struct { path string opts message.Options @@ -65,7 +57,7 @@ func TestConnGetBlockwise(t *testing.T) { } // verify that the binary coap-client is installed - _, err = exec.LookPath("coap-client") + _, err := exec.LookPath("coap-client") if err != nil { t.Error("coap-client not found in PATH") return @@ -136,9 +128,6 @@ func TestConnGetBlockwise(t *testing.T) { } func TestConnPutBlockwise(t *testing.T) { - bigPayload10KiB, err := assets.ReadFile("testdata/big.txt") - require.NoError(t, err) - require.NotEmpty(t, bigPayload10KiB) type args struct { path string @@ -173,7 +162,7 @@ func TestConnPutBlockwise(t *testing.T) { }, } - _, err = exec.LookPath("coap-client") + _, err := exec.LookPath("coap-client") if err != nil { t.Error("coap-client not found in PATH") return @@ -236,9 +225,6 @@ func TestConnPutBlockwise(t *testing.T) { } func TestConnPostBlockwise(t *testing.T) { - bigPayload10KiB, err := assets.ReadFile("testdata/big.txt") - require.NoError(t, err) - require.NotEmpty(t, bigPayload10KiB) type args struct { path string @@ -275,7 +261,7 @@ func TestConnPostBlockwise(t *testing.T) { }, } - _, err = exec.LookPath("coap-client") + _, err := exec.LookPath("coap-client") if err != nil { t.Error("coap-client not found in PATH") return @@ -342,11 +328,7 @@ func TestConnPostBlockwise(t *testing.T) { } func sendCoAPRequestLibCoAP(address string, method string, path string, payload bool, token bool) ([]byte, error) { - // Check if coap-client is available - bigPayload10KiB, err := assets.ReadFile("testdata/big.txt") - if err != nil { - return nil, fmt.Errorf("cannot read big payload: %v", err) - } + coapClientPath, err := exec.LookPath("coap-client") if err != nil { return nil, fmt.Errorf("coap-client not found in PATH") @@ -380,3 +362,86 @@ func sendCoAPRequestLibCoAP(address string, method string, path string, payload } return out.Bytes(), nil } + +const bigPayload10KiB = `89075337635954647102216077828334038179638965680796041208684221958292459041499210220101176726750119361506928946801115768179724 +42244632672758898527798766326186965189573496725417576843236332384515325066967967084729236662659424427203830789178855960389888 +59671607161000645588293584669984665020199777828148967747970527020608102921980556435899241646582421992569038754973449362160805 +31239955776017464552148435666505635723861800404618684226812752076597749931057757306056294943547000781262839809899923354086591 +58421004045160720410218892782153917915938163263152750197199304506126821048289291640271668334925747202569241057032162874410383 +13229406649061136455569503589840650992763870062625721531357020224282471379189564485235429826481871222615972206141109473569331 +50068277012583532229033541176707338889365478924968936854152065761173915111644345900669149625078722916074227614326832708754591 +53533652284306970616530322571286936751979637851359030657540649747647283544275697965879550870371044054664298592239900461215946 +76009059557554499660184378901914608236499545073223411783200832723363996938480422813626779756075702722002878735198607429314193 +44002094736767271088986498050654477655967376633678898223733576930739058637767383825961935849401218839710209402921257312961820 +93704825260513424135582178831244406040516588096108309029134822401818513505740695550261354254202973752753820320279087360947196 +55918429621241310363836489491902956692037789941466247111756063173743711825493750990483199095354632251948735581443540571147851 +33576705451417485999639036485103175235333968552793775415105863301060242033137339301553612465043007580178633002347254939486774 +76253351740254469522962295669204305447952824810032268893825488928747429925263799090622391747617047596391321066536712638557732 +37575680867445273951554153048030665598693393863627045322930863847468446766294432847821571079532490545167872329045539409949015 +93424779192253246902943606375448951225118448301956086168374658315461330349815680774676027301983519593091618714763496693321327 +52767560011321332624699332725304370589521682784449705303919999267803733573563697085551153378979854593006577548089909981713543 +28076046071839726793529076260525971094945446115633757355321401737626029007902666342541163866562552047333051804212926622330282 +41096775669616585889040375006715884019811536956240585233400637946794045905653897316207855958856671262695550818746832431295606 +70652628916349630328692621288716842439079295659578841841121454120413491068989115858630542130200218283594695012061423897090440 +61834218560689831750814231844102644604379090428070285797202462407658011097354022625203348117358972984576871018057035444003622 +87704020021974124384513179485429737379288056395947178851257079604107224206190139277216709889542925856531989476001916224619027 +68863759387563972830508162729801251953866678821015546893324592328605329412503154570657275236887715775692340674320468072326355 +09652862095090758001517843237063025061907709965234713527113847987907684535971539884349496439713393308607538169073516509320573 +19881717677921921624342488023285457464136994664772067954504249230069924114917578758575435078932814946225816723664286840764088 +42903975093490490368271551172366611153663502119251412128499322432500850940709954830267709530655015452710045689921953344525963 +25181979506203109704260551650210011996075343877738000511568860075434229446979442101114340921202046274692076576166863291451499 +53087544164706838697712066307637631542308577890521950715395956733727831900957419936036043512013354318852228554517014871430445 +52183006933853209704979716208434160389680560396817362087348868632182558538333715494847726439829807889964882762910089850375881 +42374547618731039196179936072809036245422983954444342795738247254385457457840805971763359054583201742435961107686979396610623 +24810103683410495617851410713572620315448726583584981449947038985485575281475744247630223527779072265880742100969654904378021 +63159154891797884371607885984519924645150719852298986970682242180937549859931769323892726795180205653285906650158213591969127 +87584804780808650485104610259334382933033303555501614573072992784704112611794953126897375807677686756469206675739847741801759 +09824382502353567699991849042178048955406918794863723166080325077644830766879531093270447724236915505895091270857030568108888 +09801992343429647677725213078625344323137570136533993666574069066185597762165272865617351906631969497431308212311746452332753 +50486215446522914826756760315765086483752253455388698527009715323278898802761011517540687432125915776353741286574042410803907 +21693777203033787663322463779624583040636801288144509467244071168015742536261876591972752425051924337119337687394361921739271 +90782443576883768473658476996997690398558218656699441901303581912737632512156234121965757392716338541365378912629415243052335 +39966843950750216344635598090354376724959221639932240820241921222236937716204176100927784185548554306742005876297206915395062 +33984656790327209572799164845594061516502187119288192507898280455275349934963903033116073335340214429518139514404296428299813 +45709035063666734295338164676114269238076991968263060903866042463997529462945589367524801365231239381745249836014682584665967 +63702169565055877527937350731227650228819291370454964156393023418199235266272252491983118158864530128121190181280922773935061 +10633847162296395529279853416539160660383168075328476096164323882800878408541926508583157678473846700986162454710214467032609 +70695523430486870405926491480465478328389802802281318130052139074763712102777228504565265741052198476896513873035147853509815 +73078021574206557938177610955651392978681244556911665485455547538211821498634073945889446610769521367694337737390779669869295 +10465182443527405380842657958322578071720630930701861540608596335839977863802345945722887362911731221008394685261963106407347 +77769897119118227701392711561080248625076536303981719830420967909426069927176983706599409138558924049251608743464919960916913 +88144570581227246506857913197393511175039532892612497264469129095171957627003663858975634494223856152051777243951032446935546 +62987289043239106757365713838749756512351395065276549477382090524107741332847943142919302030966647973228434124101914071624286 +38571288718091450283219945881615099541961495788620178007409933850077658816577006698223328485235433864284768946459888978216577 +47121699195402960072871933253315268991054161819251632890101324426239901606842780785254856630928049697991199918241968401687524 +65917937976902296337925064170768584673518495564384581873028808994535266235268635617401741978167174736077047319525843245759343 +70089161298342265005635681355733041124267109366906725676486016427743761626473104987846106872157445707062414835687945128374662 +89578825333982166848552419287023972913145525150970413085783382589068517065687648235897591171908548273384218256386786982783082 +54298922025845725997349029801423554359348857886791912956117795498184706033931934972442078416047288579273242704361631862185496 +00559535375962052162160562274037339636206853812154636551165938337083356552065298018917831445739403967087655507716769518427209 +93197152162769887682284700761571792662042793655938685565590800435746787101566909314895914936114939501750913365898132656211516 +65919663342722607482529888843347435488546095771604379817945620118200814679008863059926636168213036287099298294287937507356028 +47557350704402491600870402313666691818619528095780380450597711824896871448094764991406857183765003310046481104033999501529907 +63819829881388547210659728155280434115308871143756474969891988249036889905587973832229218365220659637721234812454336200969892 +32565250463372632426784739554249126871707586582634575773633845120978981984781614243321805022984037644550213376382706755538912 +63608087503356415074008640542255965044047385324771966963263687374409541633212667392460170204187585131796962853507077426711467 +82416830408263179547656799909628874003594254830066742351215196660229808482517727653658361184008407639636658314771196514435962 +57055069805255258228997338263416055356962496010247998302332315983943137071589919332935915443079086663292689332796915458858533 +78802099882867673292044986061116853831320553485603326418562099086610304726697864321643940148243293713566569997844148131098723 +32972049017800181590635560746903342186718786568739340270066843173403600088184879446370243389513987511245430183035749259677219 +39475221986745701867045264567295495715162655776937004945587798562307888275226753515294447709418579527627929320806930595092445 +07062444659367053864980480876549582414301239604607713417984571474999763436066374643155514932821874818105012051756426832019448 +38912103535134759846806959529551046008717147043532640492940270997592379633272871916443154917716735955061067476857984563591060 +66600141050577560146599713740762987006647076728636752019214782143927038039299604432858077630018642677582399873252904382929701 +03990998933463052939580256625676152921018937035604237385974487395760437176602948388018261638805259647043228421413136698703550 +43906766027304356681735753014548157098522605811449867456674754796897475153268766128934441535835653548554674438300332619143310 +69482641242905730593109334920730380850018799800268024459342932768494782438798233478030223177726400957860816341294807806542076 +12404964114462146952823124601890934461763628627826392674615311380751608882622614308376225040930500390369920058611297275044397 +27698625743431139018191831104741463234424768206206261648154142508534124892891747531635846606916749510281665170434053883695497 +28014022062629206324986083614666093768159373547463515583848785363477829205304363587371900155823057654041248791031214759095492 +32645352421401631755122614453624940807860429677835265660762815808343546961259904405838666922615861735247043270283672601831237 +23845743452187724003922760010768251830780151145483923718790185717515691135593968954580679887728900565822409559108323375977132 +91655282321189488943674583928812971734718557687261267540861951330156857260194972959320584575281425950364513866555614168110966 +87585502488315874658362449099439868192063303681917995993161431685969345689815394695246096186072665320424126902383281639806078 +13897268972795607841085430069511881664533488909312510299548807790607510574162189448464719710343594178873230685172521870698370 +6337814198009624212201025856162445` diff --git a/udp/testdata/big.txt b/udp/testdata/big.txt deleted file mode 100644 index 88d47453..00000000 --- a/udp/testdata/big.txt +++ /dev/null @@ -1 +0,0 @@ -8907533763595464710221607782833403817963896568079604120868422195829245904149921022010117672675011936150692894680111576817972442244632672758898527798766326186965189573496725417576843236332384515325066967967084729236662659424427203830789178855960389888596716071610006455882935846699846650201997778281489677479705270206081029219805564358992416465824219925690387549734493621608053123995577601746455214843566650563572386180040461868422681275207659774993105775730605629494354700078126283980989992335408659158421004045160720410218892782153917915938163263152750197199304506126821048289291640271668334925747202569241057032162874410383132294066490611364555695035898406509927638700626257215313570202242824713791895644852354298264818712226159722061411094735693315006827701258353222903354117670733888936547892496893685415206576117391511164434590066914962507872291607422761432683270875459153533652284306970616530322571286936751979637851359030657540649747647283544275697965879550870371044054664298592239900461215946760090595575544996601843789019146082364995450732234117832008327233639969384804228136267797560757027220028787351986074293141934400209473676727108898649805065447765596737663367889822373357693073905863776738382596193584940121883971020940292125731296182093704825260513424135582178831244406040516588096108309029134822401818513505740695550261354254202973752753820320279087360947196559184296212413103638364894919029566920377899414662471117560631737437118254937509904831990953546322519487355814435405711478513357670545141748599963903648510317523533396855279377541510586330106024203313733930155361246504300758017863300234725493948677476253351740254469522962295669204305447952824810032268893825488928747429925263799090622391747617047596391321066536712638557732375756808674452739515541530480306655986933938636270453229308638474684467662944328478215710795324905451678723290455394099490159342477919225324690294360637544895122511844830195608616837465831546133034981568077467602730198351959309161871476349669332132752767560011321332624699332725304370589521682784449705303919999267803733573563697085551153378979854593006577548089909981713543280760460718397267935290762605259710949454461156337573553214017376260290079026663425411638665625520473330518042129266223302824109677566961658588904037500671588401981153695624058523340063794679404590565389731620785595885667126269555081874683243129560670652628916349630328692621288716842439079295659578841841121454120413491068989115858630542130200218283594695012061423897090440618342185606898317508142318441026446043790904280702857972024624076580110973540226252033481173589729845768710180570354440036228770402002197412438451317948542973737928805639594717885125707960410722420619013927721670988954292585653198947600191622461902768863759387563972830508162729801251953866678821015546893324592328605329412503154570657275236887715775692340674320468072326355096528620950907580015178432370630250619077099652347135271138479879076845359715398843494964397133933086075381690735165093205731988171767792192162434248802328545746413699466477206795450424923006992411491757875857543507893281494622581672366428684076408842903975093490490368271551172366611153663502119251412128499322432500850940709954830267709530655015452710045689921953344525963251819795062031097042605516502100119960753438777380005115688600754342294469794421011143409212020462746920765761668632914514995308754416470683869771206630763763154230857789052195071539595673372783190095741993603604351201335431885222855451701487143044552183006933853209704979716208434160389680560396817362087348868632182558538333715494847726439829807889964882762910089850375881423745476187310391961799360728090362454229839544443427957382472543854574578408059717633590545832017424359611076869793966106232481010368341049561785141071357262031544872658358498144994703898548557528147574424763022352777907226588074210096965490437802163159154891797884371607885984519924645150719852298986970682242180937549859931769323892726795180205653285906650158213591969127875848047808086504851046102593343829330333035555016145730729927847041126117949531268973758076776867564692066757398477418017590982438250235356769999184904217804895540691879486372316608032507764483076687953109327044772423691550589509127085703056810888809801992343429647677725213078625344323137570136533993666574069066185597762165272865617351906631969497431308212311746452332753504862154465229148267567603157650864837522534553886985270097153232788988027610115175406874321259157763537412865740424108039072169377720303378766332246377962458304063680128814450946724407116801574253626187659197275242505192433711933768739436192173927190782443576883768473658476996997690398558218656699441901303581912737632512156234121965757392716338541365378912629415243052335399668439507502163446355980903543767249592216399322408202419212222369377162041761009277841855485543067420058762972069153950623398465679032720957279916484559406151650218711928819250789828045527534993496390303311607333534021442951813951440429642829981345709035063666734295338164676114269238076991968263060903866042463997529462945589367524801365231239381745249836014682584665967637021695650558775279373507312276502288192913704549641563930234181992352662722524919831181588645301281211901812809227739350611063384716229639552927985341653916066038316807532847609616432388280087840854192650858315767847384670098616245471021446703260970695523430486870405926491480465478328389802802281318130052139074763712102777228504565265741052198476896513873035147853509815730780215742065579381776109556513929786812445569116654854555475382118214986340739458894466107695213676943377373907796698692951046518244352740538084265795832257807172063093070186154060859633583997786380234594572288736291173122100839468526196310640734777769897119118227701392711561080248625076536303981719830420967909426069927176983706599409138558924049251608743464919960916913881445705812272465068579131973935111750395328926124972644691290951719576270036638589756344942238561520517772439510324469355466298728904323910675736571383874975651235139506527654947738209052410774133284794314291930203096664797322843412410191407162428638571288718091450283219945881615099541961495788620178007409933850077658816577006698223328485235433864284768946459888978216577471216991954029600728719332533152689910541618192516328901013244262399016068427807852548566309280496979911999182419684016875246591793797690229633792506417076858467351849556438458187302880899453526623526863561740174197816717473607704731952584324575934370089161298342265005635681355733041124267109366906725676486016427743761626473104987846106872157445707062414835687945128374662895788253339821668485524192870239729131455251509704130857833825890685170656876482358975911719085482733842182563867869827830825429892202584572599734902980142355435934885788679191295611779549818470603393193497244207841604728857927324270436163186218549600559535375962052162160562274037339636206853812154636551165938337083356552065298018917831445739403967087655507716769518427209931971521627698876822847007615717926620427936559386855655908004357467871015669093148959149361149395017509133658981326562115166591966334272260748252988884334743548854609577160437981794562011820081467900886305992663616821303628709929829428793750735602847557350704402491600870402313666691818619528095780380450597711824896871448094764991406857183765003310046481104033999501529907638198298813885472106597281552804341153088711437564749698919882490368899055879738322292183652206596377212348124543362009698923256525046337263242678473955424912687170758658263457577363384512097898198478161424332180502298403764455021337638270675553891263608087503356415074008640542255965044047385324771966963263687374409541633212667392460170204187585131796962853507077426711467824168304082631795476567999096288740035942548300667423512151966602298084825177276536583611840084076396366583147711965144359625705506980525525822899733826341605535696249601024799830233231598394313707158991933293591544307908666329268933279691545885853378802099882867673292044986061116853831320553485603326418562099086610304726697864321643940148243293713566569997844148131098723329720490178001815906355607469033421867187865687393402700668431734036000881848794463702433895139875112454301830357492596772193947522198674570186704526456729549571516265577693700494558779856230788827522675351529444770941857952762792932080693059509244507062444659367053864980480876549582414301239604607713417984571474999763436066374643155514932821874818105012051756426832019448389121035351347598468069595295510460087171470435326404929402709975923796332728719164431549177167359550610674768579845635910606660014105057756014659971374076298700664707672863675201921478214392703803929960443285807763001864267758239987325290438292970103990998933463052939580256625676152921018937035604237385974487395760437176602948388018261638805259647043228421413136698703550439067660273043566817357530145481570985226058114498674566747547968974751532687661289344415358356535485546744383003326191433106948264124290573059310933492073038085001879980026802445934293276849478243879823347803022317772640095786081634129480780654207612404964114462146952823124601890934461763628627826392674615311380751608882622614308376225040930500390369920058611297275044397276986257434311390181918311047414632344247682062062616481541425085341248928917475316358466069167495102816651704340538836954972801402206262920632498608361466609376815937354746351558384878536347782920530436358737190015582305765404124879103121475909549232645352421401631755122614453624940807860429677835265660762815808343546961259904405838666922615861735247043270283672601831237238457434521877240039227600107682518307801511454839237187901857175156911355939689545806798877289005658224095591083233759771329165528232118948894367458392881297173471855768726126754086195133015685726019497295932058457528142595036451386655561416811096687585502488315874658362449099439868192063303681917995993161431685969345689815394695246096186072665320424126902383281639806078138972689727956078410854300695118816645334889093125102995488077906075105741621894484647197103435941788732306851725218706983706337814198009624212201025856162445 \ No newline at end of file From 1d37471b4fcccfd9bdf440722991e8b604087dc9 Mon Sep 17 00:00:00 2001 From: Theodor Rauch Date: Mon, 13 Oct 2025 17:21:27 +0200 Subject: [PATCH 4/4] fix: remove fixed ports from tests --- udp/server_libcoap_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/udp/server_libcoap_test.go b/udp/server_libcoap_test.go index 468eff1c..43c5ee06 100644 --- a/udp/server_libcoap_test.go +++ b/udp/server_libcoap_test.go @@ -63,7 +63,7 @@ func TestConnGetBlockwise(t *testing.T) { return } - l, err := coapNet.NewListenUDP("udp", "[::]:5685") + l, err := coapNet.NewListenUDP("udp", "") require.NoError(t, err) defer func() { errC := l.Close() @@ -168,7 +168,7 @@ func TestConnPutBlockwise(t *testing.T) { return } - l, err := coapNet.NewListenUDP("udp", "[::]:5686") + l, err := coapNet.NewListenUDP("udp", "") require.NoError(t, err) defer func() { errC := l.Close() @@ -267,7 +267,7 @@ func TestConnPostBlockwise(t *testing.T) { return } - l, err := coapNet.NewListenUDP("udp", "[::]:5687") + l, err := coapNet.NewListenUDP("udp", "") require.NoError(t, err) defer func() { errC := l.Close()