1616package org .tron .core .config .args ;
1717
1818import com .google .common .collect .Lists ;
19+ import com .typesafe .config .Config ;
20+ import com .typesafe .config .ConfigMergeable ;
21+ import com .typesafe .config .ConfigOrigin ;
22+ import com .typesafe .config .ConfigRenderOptions ;
23+ import com .typesafe .config .ConfigValue ;
24+ import com .typesafe .config .ConfigValueType ;
1925import io .grpc .internal .GrpcUtil ;
2026import io .grpc .netty .NettyServerBuilder ;
27+ import java .lang .reflect .InvocationTargetException ;
28+ import java .lang .reflect .Method ;
2129import java .util .Arrays ;
2230import lombok .extern .slf4j .Slf4j ;
2331import org .junit .After ;
2836import org .tron .common .utils .ByteArray ;
2937import org .tron .common .utils .LocalWitnesses ;
3038import org .tron .common .utils .PublicMethod ;
39+ import org .tron .common .utils .ReflectUtils ;
3140import org .tron .core .Constant ;
41+ import org .tron .core .config .Configuration ;
42+ import org .tron .core .net .peer .PeerManager ;
3243
3344@ Slf4j
3445public class ArgsTest {
@@ -44,7 +55,7 @@ public void destroy() {
4455
4556 @ Test
4657 public void get () {
47- Args .setParam (new String []{"-w" }, Constant .TEST_CONF );
58+ Args .setParam (new String [] {"-w" }, Constant .TEST_CONF );
4859
4960 CommonParameter parameter = Args .getInstance ();
5061
@@ -55,7 +66,7 @@ public void get() {
5566 localWitnesses .initWitnessAccountAddress (true );
5667 Args .setLocalWitnesses (localWitnesses );
5768 address = ByteArray .toHexString (Args .getLocalWitnesses ()
58- .getWitnessAccountAddress (CommonParameter .getInstance ().isECKeyCryptoEngine ()));
69+ .getWitnessAccountAddress (CommonParameter .getInstance ().isECKeyCryptoEngine ()));
5970
6071 Assert .assertEquals (0 , parameter .getBackupPriority ());
6172
@@ -112,5 +123,35 @@ public void get() {
112123 ByteArray .toHexString (Args .getLocalWitnesses ()
113124 .getWitnessAccountAddress (CommonParameter .getInstance ().isECKeyCryptoEngine ())));
114125 }
126+
127+ @ Test
128+ public void testIpFromLibP2p ()
129+ throws NoSuchMethodException , InvocationTargetException , IllegalAccessException {
130+ Args .setParam (new String [] {"-w" }, Constant .TEST_CONF );
131+ CommonParameter parameter = Args .getInstance ();
132+
133+ String configuredBindIp = parameter .getNodeDiscoveryBindIp ();
134+ String configuredExternalIp = parameter .getNodeExternalIp ();
135+ Assert .assertEquals ("127.0.0.1" , configuredBindIp );
136+ Assert .assertEquals ("46.168.1.1" , configuredExternalIp );
137+
138+ Config config = Configuration .getByFileName (null , Constant .TEST_CONF );
139+ Config config2 = config .withoutPath (Constant .NODE_DISCOVERY_BIND_IP );
140+ Config config3 = config2 .withoutPath (Constant .NODE_DISCOVERY_EXTERNAL_IP );
141+
142+ CommonParameter .getInstance ().setNodeDiscoveryBindIp (null );
143+ CommonParameter .getInstance ().setNodeExternalIp (null );
144+
145+ Method method1 = Args .class .getDeclaredMethod ("bindIp" , Config .class );
146+ method1 .setAccessible (true );
147+ method1 .invoke (Args .class , config3 );
148+
149+ Method method2 = Args .class .getDeclaredMethod ("externalIp" , Config .class );
150+ method2 .setAccessible (true );
151+ method2 .invoke (Args .class , config3 );
152+
153+ Assert .assertNotEquals (configuredBindIp , parameter .getNodeDiscoveryBindIp ());
154+ Assert .assertNotEquals (configuredExternalIp , parameter .getNodeExternalIp ());
155+ }
115156}
116157
0 commit comments