4
4
using System ;
5
5
using System . Collections . Generic ;
6
6
using System . IO ;
7
+ using Microsoft . Azure . WebJobs . Script . Abstractions ;
7
8
using Microsoft . Azure . WebJobs . Script . Config ;
8
9
using Microsoft . Azure . WebJobs . Script . Rpc ;
9
10
using Microsoft . Extensions . Configuration ;
@@ -146,5 +147,41 @@ public void JavaPath_JavaHome_NotSet()
146
147
Assert . Equal ( "java" , javaPath ) ;
147
148
}
148
149
}
150
+
151
+ [ Theory ]
152
+ [ InlineData ( "-Djava.net.preferIPv4Stack = true" , "-Djava.net.preferIPv4Stack = true" ) ]
153
+ [ InlineData ( "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" , "" ) ]
154
+ public void AddArgumentsFromAppSettings_JavaOpts ( string expectedArgument , string javaOpts )
155
+ {
156
+ WorkerDescription workerDescription = new WorkerDescription ( )
157
+ {
158
+ Arguments = new List < string > ( ) { "-jar" } ,
159
+ DefaultExecutablePath = "java" ,
160
+ DefaultWorkerPath = "javaworker.jar" ,
161
+ Extensions = new List < string > ( ) { ".jar" } ,
162
+ Language = "java"
163
+ } ;
164
+ var configBuilder = ScriptSettingsManager . CreateDefaultConfigurationBuilder ( )
165
+ . AddInMemoryCollection ( new Dictionary < string , string >
166
+ {
167
+ [ "languageWorker" ] = "test" ,
168
+ [ "languageWorkers:java:arguments" ] = "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
169
+ } ) ;
170
+ var config = configBuilder . Build ( ) ;
171
+ var scriptSettingsManager = new ScriptSettingsManager ( config ) ;
172
+ var testLogger = new TestLogger ( "test" ) ;
173
+ var configFactory = new WorkerConfigFactory ( config , testLogger ) ;
174
+ var languageSection = config . GetSection ( "languageWorkers:java" ) ;
175
+ var testEnvVariables = new Dictionary < string , string >
176
+ {
177
+ { "JAVA_OPTS" , javaOpts }
178
+ } ;
179
+ using ( var variables = new TestScopedSettings ( scriptSettingsManager , testEnvVariables ) )
180
+ {
181
+ WorkerConfigFactory . AddArgumentsFromAppSettings ( workerDescription , languageSection ) ;
182
+ Assert . Equal ( 2 , workerDescription . Arguments . Count ) ;
183
+ Assert . Equal ( expectedArgument , workerDescription . Arguments [ 1 ] ) ;
184
+ }
185
+ }
149
186
}
150
187
}
0 commit comments