mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 10:07:26 +00:00 
			
		
		
		
	
		
			
	
	
		
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package autorelay
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"testing"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ma "github.com/multiformats/go-multiaddr"
							 | 
						||
| 
								 | 
							
									"github.com/stretchr/testify/require"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestCleanupAddrs(t *testing.T) {
							 | 
						||
| 
								 | 
							
									t.Run("with no addrplosion", func(t *testing.T) {
							 | 
						||
| 
								 | 
							
										addrs := makeAddrList(
							 | 
						||
| 
								 | 
							
											"/ip4/127.0.0.1/tcp/4001",
							 | 
						||
| 
								 | 
							
											"/ip4/127.0.0.1/udp/4002/quic",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/4001",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/udp/4002/quic",
							 | 
						||
| 
								 | 
							
											"/dnsaddr/somedomain.com/tcp/4002/ws",
							 | 
						||
| 
								 | 
							
										)
							 | 
						||
| 
								 | 
							
										clean := makeAddrList(
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/4001",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/udp/4002/quic",
							 | 
						||
| 
								 | 
							
											"/dnsaddr/somedomain.com/tcp/4002/ws",
							 | 
						||
| 
								 | 
							
										)
							 | 
						||
| 
								 | 
							
										require.ElementsMatch(t, clean, cleanupAddressSet(addrs), "cleaned up set doesn't match expected")
							 | 
						||
| 
								 | 
							
									})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									t.Run("with default port", func(t *testing.T) {
							 | 
						||
| 
								 | 
							
										// test with default port addrspolosion
							 | 
						||
| 
								 | 
							
										addrs := makeAddrList(
							 | 
						||
| 
								 | 
							
											"/ip4/127.0.0.1/tcp/4001",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/4001",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/33333",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/33334",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/33335",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/udp/4002/quic",
							 | 
						||
| 
								 | 
							
										)
							 | 
						||
| 
								 | 
							
										clean := makeAddrList(
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/4001",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/udp/4002/quic",
							 | 
						||
| 
								 | 
							
										)
							 | 
						||
| 
								 | 
							
										require.ElementsMatch(t, clean, cleanupAddressSet(addrs), "cleaned up set doesn't match expected")
							 | 
						||
| 
								 | 
							
									})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									t.Run("with default port, but no private addrs", func(t *testing.T) {
							 | 
						||
| 
								 | 
							
										// test with default port addrsplosion but no private addrs
							 | 
						||
| 
								 | 
							
										addrs := makeAddrList(
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/4001",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/33333",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/33334",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/33335",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/udp/4002/quic",
							 | 
						||
| 
								 | 
							
										)
							 | 
						||
| 
								 | 
							
										clean := makeAddrList(
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/4001",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/udp/4002/quic",
							 | 
						||
| 
								 | 
							
										)
							 | 
						||
| 
								 | 
							
										require.ElementsMatch(t, clean, cleanupAddressSet(addrs), "cleaned up set doesn't match expected")
							 | 
						||
| 
								 | 
							
									})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									t.Run("with non-standard port", func(t *testing.T) {
							 | 
						||
| 
								 | 
							
										addrs := makeAddrList(
							 | 
						||
| 
								 | 
							
											"/ip4/127.0.0.1/tcp/12345",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/12345",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/33333",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/33334",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/33335",
							 | 
						||
| 
								 | 
							
										)
							 | 
						||
| 
								 | 
							
										clean := makeAddrList(
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/12345",
							 | 
						||
| 
								 | 
							
										)
							 | 
						||
| 
								 | 
							
										require.ElementsMatch(t, clean, cleanupAddressSet(addrs), "cleaned up set doesn't match expected")
							 | 
						||
| 
								 | 
							
									})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									t.Run("with a clean address set", func(t *testing.T) {
							 | 
						||
| 
								 | 
							
										// test with a squeaky clean address set
							 | 
						||
| 
								 | 
							
										addrs := makeAddrList(
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/tcp/4001",
							 | 
						||
| 
								 | 
							
											"/ip4/1.2.3.4/udp/4001/quic",
							 | 
						||
| 
								 | 
							
										)
							 | 
						||
| 
								 | 
							
										require.ElementsMatch(t, addrs, cleanupAddressSet(addrs), "cleaned up set doesn't match expected")
							 | 
						||
| 
								 | 
							
									})
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func makeAddrList(strs ...string) []ma.Multiaddr {
							 | 
						||
| 
								 | 
							
									result := make([]ma.Multiaddr, 0, len(strs))
							 | 
						||
| 
								 | 
							
									for _, s := range strs {
							 | 
						||
| 
								 | 
							
										result = append(result, ma.StringCast(s))
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									return result
							 | 
						||
| 
								 | 
							
								}
							 |