@@ -336,14 +336,21 @@ let createIA5StringInitFunc (r:Asn1AcnAst.AstRoot) (lm:LanguageMacros) (t:Asn1A
336336 //let i = sprintf "i%d" ii
337337 let bAlpha = o.uperCharSet.Length < 128
338338 let arrAsciiCodes = o.uperCharSet |> Array.map( fun x -> BigInteger ( System.Convert.ToInt32 x))
339+ let firstPrintableAsciiCode =
340+ arrAsciiCodes
341+ |> Array.tryFind( fun x -> x >= 32 I && x <= 126 I)
342+ let sFirstNonNullChar =
343+ match firstPrintableAsciiCode with
344+ | Some c -> sprintf " '%c '" ( char ( int c))
345+ | None -> " '\0 '"
339346 let testCaseFuncs =
340347 let seqOfCase ( nSize : BigInteger ) =
341348 let initTestCaseFunc ( p : CodegenScope ) =
342349 let ii = p.accessPath.SequenceOfLevel + 1
343350 let i = sprintf " i%d " ii
344351 let resVar = p.accessPath.asIdentifier
345352 let td = strTypeDef.longTypedefName2 ( lm.lg.hasModules) ( ToC p.modName)
346- let funcBody = initTestCaseIA5String ( p.accessPath.joinedUnchecked lm.lg FullAccess) ( lm.lg.getAccess p.accessPath) ( nSize) (( o.maxSize.uper+ 1 I)) i td bAlpha arrAsciiCodes ( BigInteger arrAsciiCodes.Length) false resVar
353+ let funcBody = initTestCaseIA5String ( p.accessPath.joinedUnchecked lm.lg FullAccess) ( lm.lg.getAccess p.accessPath) ( nSize) (( o.maxSize.uper+ 1 I)) i td bAlpha arrAsciiCodes ( BigInteger arrAsciiCodes.Length) false resVar sFirstNonNullChar
347354 { InitFunctionResult.funcBody = funcBody; resultVar = resVar; localVariables=[ SequenceOfIndex ( ii, None)]}
348355 { AutomaticTestCase.initTestCaseFunc = initTestCaseFunc; testCaseTypeIDsMap = Map.ofList [( t.id, TcvSizeableTypeValue nSize)] }
349356 seq {
@@ -362,11 +369,11 @@ let createIA5StringInitFunc (r:Asn1AcnAst.AstRoot) (lm:LanguageMacros) (t:Asn1A
362369 let i = sprintf " i%d " ii
363370 let resVar = p.accessPath.asIdentifier
364371 let td = strTypeDef.longTypedefName2 ( lm.lg.hasModules) ( ToC p.modName)
365- let funcBody = initTestCaseIA5String ( p.accessPath.joined lm.lg) ( lm.lg.getAccess p.accessPath) ( ( o.maxSize.uper+ 1 I )) ( ( o.maxSize.uper+ 1 I)) i td bAlpha arrAsciiCodes ( BigInteger arrAsciiCodes.Length) false resVar
372+ let funcBody = initTestCaseIA5String ( p.accessPath.joined lm.lg) ( lm.lg.getAccess p.accessPath) ( o.maxSize.uper) ( o.maxSize.uper+ 1 I) i td bAlpha arrAsciiCodes ( BigInteger arrAsciiCodes.Length) true resVar sFirstNonNullChar
366373 let lvars = lm.lg.init.zeroIA5String_ localVars ii
367374 let resVar = p.accessPath.asIdentifier
368375 { InitFunctionResult.funcBody = funcBody; resultVar = resVar; localVariables= lvars}
369- let constantInitExpression () = lm.lg.initializeString ( int o.maxSize.uper)
376+ let constantInitExpression () = lm.lg.initializeString firstPrintableAsciiCode ( int o.maxSize.uper)
370377 createInitFunctionCommon r lm t typeDefinition funcBody zero testCaseFuncs constantInitExpression constantInitExpression [] [] []
371378
372379let createOctetStringInitFunc ( r : Asn1AcnAst.AstRoot ) ( lm : LanguageMacros ) ( t : Asn1AcnAst.Asn1Type ) ( o : Asn1AcnAst.OctetString ) ( typeDefinition : TypeDefinitionOrReference ) ( isValidFunction : IsValidFunction option ) =
0 commit comments