@@ -40,8 +40,7 @@ class ConfigConverterTest extends AnyFlatSpec {
4040 val noArgs = Seq ()
4141 val mainOnlyResult =
4242 ConfigConverter .convert(dummyCliOptions, dummyMain, noArgs)
43- assert(mainOnlyResult.isLeft)
44- assert(mainOnlyResult.left.get.isInstanceOf [IllegalArgumentException ])
43+ assert(mainOnlyResult.left.exists(_.isInstanceOf [IllegalArgumentException ]))
4544 }
4645
4746 it should " parse classpath strings correctly" in {
@@ -59,27 +58,23 @@ class ConfigConverterTest extends AnyFlatSpec {
5958 val config =
6059 ConfigConverter .convert(dummyCliOptions, dummyMain, classPathStrings)
6160
62- assert(config != None )
63- assert(config.right.get.config.classPath.sameElements(expected))
61+ assert(config.exists(_.config.classPath.sameElements(expected)))
6462 }
6563
6664 it should " handle NativeConfig GC correctly" in {
6765 def gcAssertion (gcString : String , expectedGC : GC ) = {
68- val options = CliOptions (
69- dummyConfigOptions,
70- NativeConfigOptions (gc =
71- NativeConfigParserImplicits .gcParser(None , gcString).right.get
72- ),
73- dummyLoggerOptions,
74- dummyMiscOptions
75- )
76- val config =
77- ConfigConverter
66+ val parsed = for {
67+ gc <- NativeConfigParserImplicits .gcParser(None , gcString)
68+ options = CliOptions (
69+ dummyConfigOptions,
70+ NativeConfigOptions (gc = gc),
71+ dummyLoggerOptions,
72+ dummyMiscOptions
73+ )
74+ converted <- ConfigConverter
7875 .convert(options, dummyMain, dummyArguments)
79- .right
80- .get
81- .config
82- assert(config.compilerConfig.gc == expectedGC)
76+ } yield converted.config.gc
77+ assert(parsed.contains(expectedGC))
8378 }
8479 gcAssertion(" immix" , GC .immix)
8580 gcAssertion(" commix" , GC .commix)
@@ -89,21 +84,17 @@ class ConfigConverterTest extends AnyFlatSpec {
8984
9085 it should " handle NativeConfig Mode correctly" in {
9186 def modeAssertion (modeString : String , expectedMode : Mode ) = {
92- val options = CliOptions (
93- dummyConfigOptions,
94- NativeConfigOptions (mode =
95- NativeConfigParserImplicits .modeParser(None , modeString).right.get
96- ),
97- dummyLoggerOptions,
98- dummyMiscOptions
99- )
100- val config =
101- ConfigConverter
102- .convert(options, dummyMain, dummyArguments)
103- .right
104- .get
105- .config
106- assert(config.compilerConfig.mode == expectedMode)
87+ val parsed = for {
88+ mode <- NativeConfigParserImplicits .modeParser(None , modeString)
89+ options = CliOptions (
90+ dummyConfigOptions,
91+ NativeConfigOptions (mode = mode),
92+ dummyLoggerOptions,
93+ dummyMiscOptions
94+ )
95+ converted <- ConfigConverter .convert(options, dummyMain, dummyArguments)
96+ } yield converted.config.compilerConfig.mode
97+ assert(parsed.contains(expectedMode))
10798 }
10899 modeAssertion(" debug" , Mode .debug)
109100 modeAssertion(" release-fast" , Mode .releaseFast)
@@ -112,21 +103,19 @@ class ConfigConverterTest extends AnyFlatSpec {
112103
113104 it should " handle NativeConfig LTO correctly" in {
114105 def ltoAssertion (ltoString : String , expectedLto : LTO ) = {
115- val options = CliOptions (
116- dummyConfigOptions,
117- NativeConfigOptions (lto =
118- NativeConfigParserImplicits .ltoParser(None , ltoString).right.get
119- ),
120- dummyLoggerOptions,
121- dummyMiscOptions
122- )
123- val config =
124- ConfigConverter
106+ val parsed = for {
107+ lto <- NativeConfigParserImplicits .ltoParser(None , ltoString)
108+ options = CliOptions (
109+ dummyConfigOptions,
110+ NativeConfigOptions (lto = lto),
111+ dummyLoggerOptions,
112+ dummyMiscOptions
113+ )
114+ opts <- ConfigConverter
125115 .convert(options, dummyMain, dummyArguments)
126- .right
127- .get
128- .config
129- assert(config.compilerConfig.lto == expectedLto)
116+ } yield opts.config.compilerConfig.lto
117+
118+ assert(parsed.contains(expectedLto))
130119 }
131120 ltoAssertion(" none" , LTO .none)
132121 ltoAssertion(" thin" , LTO .thin)
@@ -151,10 +140,17 @@ class ConfigConverterTest extends AnyFlatSpec {
151140 )
152141
153142 val nativeConfig =
154- ConfigConverter .convert(options, dummyMain, dummyArguments).right.get
143+ ConfigConverter
144+ .convert(options, dummyMain, dummyArguments)
145+ .map(_.config.compilerConfig)
146+ .fold(
147+ fail(_),
148+ { config =>
149+ assert(config.clang == expectedClangPath)
150+ assert(config.clangPP == expectedClangPPPath)
151+ }
152+ )
155153
156- assert(nativeConfig.config.compilerConfig.clang == expectedClangPath)
157- assert(nativeConfig.config.compilerConfig.clangPP == expectedClangPPPath)
158154 }
159155
160156 it should " parse boolean options as opposite of default" in {
@@ -169,22 +165,23 @@ class ConfigConverterTest extends AnyFlatSpec {
169165 dummyLoggerOptions,
170166 dummyMiscOptions
171167 )
172- val default = ConfigConverter
173- .convert(dummyCliOptions, dummyMain, dummyArguments)
174- .right
175- .get
176- .config
177- .compilerConfig
178- val nonDefault = ConfigConverter
179- .convert(options, dummyMain, dummyArguments)
180- .right
181- .get
182- .config
183- .compilerConfig
184-
185- assert(nonDefault.check != default.check)
186- assert(nonDefault.dump != default.dump)
187- assert(nonDefault.optimize != default.optimize)
188- assert(nonDefault.linkStubs != default.linkStubs)
168+ val parsed = for {
169+ default <- ConfigConverter
170+ .convert(dummyCliOptions, dummyMain, dummyArguments)
171+ .map(_.config.compilerConfig)
172+ nonDefault <- ConfigConverter
173+ .convert(options, dummyMain, dummyArguments)
174+ .map(_.config.compilerConfig)
175+ } yield (default, nonDefault)
176+
177+ parsed.fold(
178+ fail(_),
179+ { case (default, nonDefault) =>
180+ assert(nonDefault.check != default.check)
181+ assert(nonDefault.dump != default.dump)
182+ assert(nonDefault.optimize != default.optimize)
183+ assert(nonDefault.linkStubs != default.linkStubs)
184+ }
185+ )
189186 }
190187}
0 commit comments