aboutsummaryrefslogtreecommitdiffstats
path: root/lib/xmerl/test/gen_testsuits-2001-01-16.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/xmerl/test/gen_testsuits-2001-01-16.erl')
-rw-r--r--lib/xmerl/test/gen_testsuits-2001-01-16.erl744
1 files changed, 0 insertions, 744 deletions
diff --git a/lib/xmerl/test/gen_testsuits-2001-01-16.erl b/lib/xmerl/test/gen_testsuits-2001-01-16.erl
deleted file mode 100644
index 32b4bd836e..0000000000
--- a/lib/xmerl/test/gen_testsuits-2001-01-16.erl
+++ /dev/null
@@ -1,744 +0,0 @@
-%%%-------------------------------------------------------------------
-%%% File : test2.erl
-%%% Author : Bertil Karlsson <bertil@finrod>
-%%% Description :
-%%%
-%%% Created : 26 Sep 2006 by Bertil Karlsson <bertil@finrod>
-%%%-------------------------------------------------------------------
--module(gen_testsuits-2001-01-16).
-
--compile(export_all).
--include_lib("xmerl/include/xmerl.hrl").
-
-
-%% generate(Suite) generates test suite modules. In those modules are
-%% all test cases extracted from the corresponding ".testSet"
-%% file. This program must be in the xmlSchema2002-01-16 directory of
-%% the unpacked xmlSchema2002-01-16.tar file. The test suite files are
-%% created in this directory.
-generate(all) ->
- generate(nist),
- generate(sun),
- generate(msx);
-generate(nist) ->
- io:format("generating test suite source ~p~n",
- ["NISTXMLSchema1-0-20020116.testSet"]),
- generate("NISTXMLSchema1-0-20020116.testSet"),
- io:format("compiling test suite source~n",[]),
- {ok,_}=compile:file("xmerl_xsd_NIST2002-01-16_SUITE.erl",[{i,"/view/bertil_xmerl/clearcase/otp/erts/lib/test_server/include/"},{i,"/view/bertil_xmerl/clearcase/otp/erts/lib/xmerl/include/"}]);
-generate(sun) ->
- io:format("generating test suite source ~p~n",
- ["SunXMLSchema1-0-20020116.testSet"]),
- generate("SunXMLSchema1-0-20020116.testSet"),
- io:format("compiling test suite source~n",[]),
- {ok,_}=compile:file("xmerl_xsd_Sun2002-01-16_SUITE.erl",[{i,"/view/bertil_xmerl/clearcase/otp/erts/lib/test_server/include/"},{i,"/view/bertil_xmerl/clearcase/otp/erts/lib/xmerl/include/"}]);
-generate(msx) ->
- io:format("generating test suite source ~p~n",
- ["MSXMLSchema1-0-20020116.testSet"]),
- generate("MSXMLSchema1-0-20020116.testSet"),
- io:format("compiling test suite source~n",[]),
- {ok,_}=compile:file("xmerl_xsd_MS2002-01-16_SUITE.erl",[{i,"/view/bertil_xmerl/clearcase/otp/erts/lib/test_server/include/"},{i,"/view/bertil_xmerl/clearcase/otp/erts/lib/xmerl/include/"}]);
-generate(Suite) ->
- {E,_} = xmerl_scan:file(Suite),
- {ok,FileName} = create_suite_name(xmerl_xpath:string("./@name",E)),
- case create_suite_file(FileName) of
- {ok,IO} ->
- emit_licens_text(IO),
- emit_module_header(IO,list_to_atom(filename:rootname(FileName))),
- generate2(abbrev(Suite),E,IO);
- _ ->
- failed
- end.
-generate2(Suite,E,IO) ->
- %% Each testGroup name is a function in the test suite.
- TestGroupNames = test_case_names(Suite),
- emit_all_function(TestGroupNames,IO),
- emit_init_per_suite(IO,Suite),
- emit_init_per_testcase(IO),
- TestGroups=[X||X=#xmlElement{}<-E#xmlElement.content],
- TestGroupGroups = group_testGroups(test_case_prefix(Suite),TestGroups),
- generate_test_case_functions(Suite,TestGroupGroups,IO).
-
-group_testGroups(Prefs,TGs) ->
- group_testGroups(Prefs,TGs,[]).
-group_testGroups([],[],Acc) ->
- lists:reverse(Acc);
-group_testGroups(Prefs,TGs,Acc) ->
- SplitPrefs = fun([{_,[]}|T],F) ->
- F(T,F);
- ([{N,[H|T1]}|T2],_) ->
- {H,N,[{N,T1}|T2]};
- ([H|T],_) ->
- {H,H,T};
- (A,B) ->
- io:format("SplitRefs: ~nA: ~p~nB: ~p~nTGs: ~p~n",[A,B,hd(TGs)]),
- exit(dummy)
- end,
- {Pref,TCName,Prefs2} = SplitPrefs(Prefs,SplitPrefs),
- Pred =
- fun(E) ->
- case xmerl_xpath:string("@name",E) of
- [#xmlAttribute{value=V}] ->
- lists:prefix(Pref,V);
- _ -> false
- end
- end,
- {TGG,TGs2}=lists:splitwith(Pred,TGs),
-%% case TGG of
-%% [] ->
-%% io:format("hd(Prefs): ~p~n",[hd(Prefs)]);
-%% _ ->
-%% ok
-%% end,
- group_testGroups(Prefs2,TGs2,acc_group({TCName,TGG},Acc)).
-
-acc_group({Name,TGG},[{Name,AccP}|Acc]) ->
- [{Name,AccP++TGG}|Acc];
-acc_group(TGG,Acc) ->
- [TGG|Acc].
-
-generate_test_case_functions(_Suite,[],IO) ->
- %%emit_schema_test(IO),
- %%emit_instance_test(IO),
- file:close(IO);
-generate_test_case_functions(Suite,[{TCName,TGG}|TGGs],IO) ->
- emit_test_case_func(true,TCName,comment(TCName,TGG),IO),
- generate_test_cases(Suite,TGG,0,0,IO),
- generate_test_case_functions(Suite,TGGs,IO).
-
-generate_test_cases(_,[],SIndex,EIndex,IO) ->
- emit_result_list_test(IO,SIndex,EIndex),
-%% emit_schema_result_list(IO,SIndex,EIndex),
-%% emit_instance_result_list(IO,SIndex,EIndex),
- ok;
-generate_test_cases(Suite,[El|Els],SIndex,EIndex,IO) ->
- SchemaTest = xmerl_xpath:string("schemaTest",El),
- InstanceTest = xmerl_xpath:string("instanceTest",El),
- SIndex2 = generate_schema_tests(Suite,SchemaTest,IO,SIndex,
- any_instance_tests(InstanceTest)),
-
- EIndex2=generate_instance_tests(InstanceTest,mk_state(SIndex),EIndex,IO),
- case {Els,any_tests(SchemaTest,InstanceTest)} of
-%% {[],true} ->
-%% emit(IO,[".",nl]);
-%% {_,true} ->
-%% emit(IO,[",",nl]);
- _ ->
- ok
- end,
- emit(IO,[nl,nl]),
- generate_test_cases(Suite,Els,SIndex2,EIndex2,IO).
-
-
-
-%% 0 or 1 schemaTest/ testGroup, but a schemaTest may reference many schemas
-generate_schema_tests(_Suite,[],_IO,SIndex,_) ->
- SIndex;
-generate_schema_tests(Suite,[SchemaTest],IO,SIndex,AnyInstanceTests) ->
- case xmerl_xpath:string("current[@status=\"accepted\" or @status=\"stable\"]",SchemaTest) of
- [] ->
- SIndex;
- _ ->
- case exclude_case(Suite,xmerl_xpath:string("@name",SchemaTest)) of
- true ->
- SIndex;
- _ ->
- Refs = xmerl_xpath:string("schemaDocument/@xlink:href",
- SchemaTest),
- ExpectedValue = xmerl_xpath:string("expected/@validity",
- SchemaTest),
- ExpectedReturnValue =
- expected_return_value_st(ExpectedValue,SIndex),
- generate_schema_validation_call(ExpectedReturnValue,
- Refs,0,SIndex,
- IO,length(Refs)>1,
- AnyInstanceTests)
- end
- end.
-
-
-generate_schema_validation_call(_RetVal,[],_Num,Sindex,_IO,_,false) ->
-%% emit(IO,[RetVal]),
- %% emit(IO,[".",nl]),
- Sindex;
-generate_schema_validation_call(_RetVal,[],_Num,Sindex,_IO,_,true) ->
- %% emit(IO,[RetVal]),
-% emit(IO,[",",nl]),
- Sindex;
-generate_schema_validation_call(RetVal,[#xmlAttribute{value=Link}|Refs],
- Num,Sindex,IO,ManySchemas,AnyInstanceTests) ->
- XsdBase = filename:dirname(Link),
-%% FileName = lists:flatten(io_lib:format("filename:join([?config(data_dir,Config), ~p])", [list_to_atom(Link)])),
- AccState =
- case Num of
- 0 ->
- "";
- _ ->
- ",{state," ++ mk_state(Sindex - 1) ++ "}"
- end,
- if
- Sindex == 0 ->
- emit(IO,[indent(2),mk_STResList(0)," = [],",nl,nl]);
- true ->
- ok
- end,
- RetState =
- if
- ManySchemas;AnyInstanceTests ->
- mk_state(Sindex);
- true ->
- "_"
- end,
-%% emit(IO,[indent(2),"?line ",mk_state(Num)," = xmerl_xsd:process_schema(",nl,
-%% indent(25),FileName,",",nl,
-%% indent(25),"[{xsdbase,filename:join([?config(data_dir,Config),'",
-%% XsdBase,"'])}",AccState,"]),",nl]),
- emit(IO,[indent(2),"?line {",mk_STRes(Sindex),",",RetState,
- "} = xmerl_xsd_lib:schema_test(Config,",
- list_to_atom(Link),",",list_to_atom(XsdBase),",",RetVal,AccState,"),",nl]),
- emit(IO,[indent(2),mk_STResList(Sindex+1)," = [",mk_STRes(Sindex),"|",
- mk_STResList(Sindex),"],",nl]),
- generate_schema_validation_call(RetVal,Refs,Num+1,Sindex+1,IO,
- ManySchemas,AnyInstanceTests).
-
-%% 0 or many instanceTests / testGroup
-generate_instance_tests([],_,EI,_IO) ->
- EI;
-generate_instance_tests([InstanceTest|ITs],State,Num,IO) ->
- case xmerl_xpath:string("current[@status=\"accepted\" or @status=\"stable\"]",InstanceTest) of
- [] ->
- ok;
- _ ->
- if
- Num == 0 ->
- emit(IO,[indent(2),mk_ITResList(0)," = [],",nl]);
- true ->
- ok
- end,
- [Ref] = xmerl_xpath:string("instanceDocument/@xlink:href",InstanceTest),
- ExpectedValue = xmerl_xpath:string("expected/@validity",
- InstanceTest),
- ExpectedReturnValue = expected_return_value_it(ExpectedValue),
- generate_instance_validation_call(ExpectedReturnValue,Ref,
- State,Num,IO)
- end,
- case ITs of
- [] -> ok; %%emit(IO,[".",nl]);
- _ ->ok% emit(IO,[",",nl])
- end,
- generate_instance_tests(ITs,State,Num+1,IO).
-
-generate_instance_validation_call(ExpectedReturnValue,
- #xmlAttribute{value=Link},State,Num,IO) ->
- XMLBase = filename:dirname(Link),
- %%FileName = filename:basename(Link),
-%% FileName = lists:flatten(io_lib:format("filename:join([?config(data_dir,Config), ~p])", [list_to_atom(Link)])),
-
-%% E = mk_E(Num),
-
- Res = mk_ITRes(Num),
-
-%% emit(IO,[indent(2),"?line {",E,",_} = xmerl_scan:file(",FileName,",",nl,
-%% indent(32),"[{xmlbase,filename:join([?config(data_dir,Config),'",
-%% XMLBase,"'])}]),",nl]),
-
- emit(IO,[indent(2),"?line ",Res," = xmerl_xsd_lib:instance_test(Config,",list_to_atom(Link),",",list_to_atom(XMLBase),",",ExpectedReturnValue,",",State,"),",nl]),
- emit(IO,[indent(2),mk_ITResList(Num+1)," = [",Res,"|",mk_ITResList(Num),"],",nl]).
-
-%% emit(IO,[indent(2),"?line ",ExpectedReturnValue,
-%% " = xmerl_xsd:validate(",E,",[{state,",State,"}])"]).
-
-any_tests([],[]) ->
- false;
-any_tests(_,_) ->
- true.
-
-any_instance_tests([]) ->
- false;
-any_instance_tests(_) ->
- true.
-
-expected_return_value_it([#xmlAttribute{value=Validity}]) ->
- case Validity of
- "valid" ->
- valid;
- "invalid" ->
- invalid;
- _ ->
- notKnown
- end;
-expected_return_value_it([]) ->
- "_".
-
-expected_return_value_st([#xmlAttribute{value=Validity}],_Num) ->
-%% RetVal =
- case Validity of
-%% "valid" -> "#xsd_state{errors=[]}";
-%% "invalid" -> "#xsd_state{errors=[_Err|_Errs]}";
-%% _ -> "#xsd_state{}"
-%% end,
-%% " ?line " ++ RetVal ++ " = " ++ mk_state(Num).
- "valid" ->
- valid;
- "invalid" ->
- invalid;
- _ ->
- notKnown
- end.
-
-create_suite_name([#xmlAttribute{value=Name}]) ->
- FileName = lists:concat(['xmerl_','xsd_',Name,'_SUITE.erl']),
- {ok,FileName};
-create_suite_name(_) ->
- error.
-
-create_suite_file(FileName) ->
- file:delete(FileName),
- case file:open(FileName,[append]) of
- {ok,IO} -> {ok,IO};
- _ -> failed
- end.
-
-emit_licens_text(IO) ->
- emit(IO,[
-"%%
-%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2006-2010. All Rights Reserved.
-%%
-%% The contents of this file are subject to the Erlang Public License,
-%% Version 1.1, (the "License"); you may not use this file except in
-%% compliance with the License. You should have received a copy of the
-%% Erlang Public License along with this software. If not, it can be
-%% retrieved online at http://www.erlang.org/.
-%%
-%% Software distributed under the License is distributed on an "AS IS"
-%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
-%% the License for the specific language governing rights and limitations
-%% under the License.
-%%
-%% %CopyrightEnd%
-%%",nl,
-"%%",nl,
-"%%% Purpose : Test suite for the xmerl application",nl,nl,
-"%% Do NOT edit this file. It is generated by the generate_xsd_suite module",nl,"%% For more info read the comments in the header of that file.",nl,nl]).
-
-emit_module_header(IO,Module) ->
- emit(IO,["-module(",{asis,Module},").",nl,nl]),
- emit(IO,["-compile(export_all).",nl,nl]),
- emit(IO,["-include(",{asis,"test_server.hrl"},").",nl]),
- emit(IO,["-include_lib(",{asis,"xmerl/include/xmerl.hrl"},").",nl]),
- emit(IO,["-include_lib(",{asis,"xmerl/include/xmerl_xsd.hrl"},").",nl,nl,nl]).
-
-emit_all_function(TestGroupNames,IO) ->
-
- emit(IO,["all(suite) -> [",nl]),
- emit(IO,[list_to_atom(X)||X<-indent_all(TestGroupNames)]),
- emit(IO,["].",nl,nl,nl]).
-
-emit_init_per_suite(IO,Suite) ->
- emit(IO,["%% initialization before the test suite",nl]),
- emit(IO,["init_per_suite(Config) ->",nl,
- " Dog=test_server:timetrap({minutes,10}),",nl,
- " xmerl_xsd_lib:unpack(Config,",Suite,"),",nl,
- " {ok,LogFile} = xmerl_xsd_lib:create_error_log_file(Config,",Suite,"),",nl,
- " test_server:timetrap_cancel(Dog),",nl,
- " [{suite,",Suite,"},{xmerl_error_log,LogFile}|Config].",nl,nl]),
- emit(IO,["end_per_suite(Config) ->",nl,
- " xmerl_xsd_lib:rmdir(Config,",Suite,"),",nl,
- " xmerl_xsd_lib:close_error_log_file(Config),",nl,
- " ok.",nl,nl]).
-
-emit_init_per_testcase(IO) ->
- emit(IO,["%% initialization before each testcase",nl]),
- emit(IO,["init_per_testcase(TestCase,Config) ->",nl,
- indent(2),"Dog=test_server:timetrap({minutes,3}),",nl,
- indent(2),"[{testcase,TestCase},{watchdog, Dog}|Config].",nl,nl]),
- emit(IO,["%% clean up after each testcase",nl,
- "end_per_testcase(_Func,Config) ->",nl,
- indent(2),"Dog=?config(watchdog, Config),",nl,
- indent(2),"test_server:timetrap_cancel(Dog),",nl,
- indent(2),"ok.",nl,nl]).
-
-emit_test_case_func(false,TestCaseName,_Doc,IO) ->
- emit(IO,["%% skipped testcase ",{asis,TestCaseName},".",nl,
- "%% There were no schemaTest case or instanceTest case.",nl,nl]);
-emit_test_case_func(true,TestCaseName,Doc,IO) ->
-%% emit(IO,indent_comment(Doc)),
- emit(IO,Doc),
- emit(IO,[nl,{asis,list_to_atom(TestCaseName)},"(Config) when is_list(Config) ->",nl]).
-
-
-emit_result_list_test(IO,0,0) ->
- emit(IO,[" xmerl_xsd_lib:compare_test_results(Config,[],[]).",nl,nl]);
-emit_result_list_test(IO,STI,0) ->
- emit(IO,[" xmerl_xsd_lib:compare_test_results(Config,",mk_STResList(STI),
- ",[]).",nl,nl]);
-emit_result_list_test(IO,0,ITI) ->
- emit(IO,[" xmerl_xsd_lib:compare_test_results(Config,[],",mk_ITResList(ITI),
- ").",nl,nl]);
-emit_result_list_test(IO,STI,ITI) ->
- emit(IO,[" xmerl_xsd_lib:compare_test_results(Config,",mk_STResList(STI),
- ",",mk_ITResList(ITI),").",nl,nl]).
-
-emit_schema_result_list(_IO,0,_) ->
- ok;
-emit_schema_result_list(IO,SIndex,0) ->
- emit(IO,[indent(2),"STResults = lists:reverse(",mk_STResList(SIndex),"),",nl]);
-emit_schema_result_list(IO,SIndex,_) ->
- emit(IO,[indent(2),"STResults = lists:reverse(",mk_STResList(SIndex),"),",nl]).
-
-emit_instance_result_list(_IO,0,0) ->
- ok;
-emit_instance_result_list(IO,_,0) ->
- emit(IO,[indent(2),"xmerl_xsd_lib:compare_test_results(Config,STResults,[])).",nl]);
-emit_instance_result_list(IO,0,I) ->
- emit(IO,[indent(2),"xmerl_xsd_lib:compare_test_results(Config,[],lists:reverse(",mk_ITResList(I),")).",nl]);
-emit_instance_result_list(IO,_,I) ->
-%% emit(IO,indent_all(res_list(0,I))).
-%% emit(IO,["ITResults =",nl,"["]++res_list(0,I-1,fun mk_ITRes/1)++["].",nl]).
- emit(IO,[indent(2),"xmerl_xsd_lib:compare_test_results(Config,STResults,lists:reverse(",mk_ITResList(I),")).",nl]).
-
-
-emit(IO,[nl|T]) ->
- io:format(IO,"~n",[]),
- emit(IO,T);
-emit(IO,[comma|T]) ->
- io:format(IO,",",[]),
- emit(IO,T);
-emit(IO,[H|T]) ->
- print(IO,H),
- emit(IO,T);
-emit(_,[]) ->
- ok.
-
-print(IO,Str) when is_list(Str) ->
- io:format(IO,"~s",[Str]);
-print(IO,{asis,Sym}) ->
- io:format(IO,"~p",[Sym]);
-print(IO,Term) ->
- io:format(IO,"~p",[Term]).
-
-mk_state(I) ->
- mk_VarNum("S",I).
-
-mk_E(Num) ->
- mk_VarNum("E",Num).
-
-mk_VarNum(Var,Num) ->
- lists:concat([Var,Num]).
-
-mk_ITRes(Num) ->
- mk_VarNum("ITRes",Num).
-mk_STRes(Num) ->
- mk_VarNum("STRes",Num).
-mk_STResList(Num) ->
- mk_VarNum("STResList",Num).
-mk_ITResList(Num) ->
- mk_VarNum("ITResList",Num).
-
-res_list(N,N,VariableFun) ->
- [VariableFun(N)];
-res_list(M,N,VariableFun) ->
- [VariableFun(M),comma|res_list(M+1,N,VariableFun)].
-
-indent(I) ->
- lists:flatten(lists:duplicate(I," ")).
-
-indent_all([H|T]) ->
- indent_all(T,length(H),[H]).
-indent_all([],_Col,Acc) ->
- lists:reverse(Acc);
-indent_all([H|T],Col,Acc) when is_list(H) ->
- case length(H)+Col of
- I when I < 80 ->
- indent_all(T,I+1,[H,"comma"|Acc]);
- _I ->
- indent_all(T,length(H),[H,"nl","comma"|Acc])
- end.
-
-indent_comment(Comment) ->
- indent_comment(string:tokens(Comment,"\n\t\s"),3,["%% "]).
-indent_comment([],_,Acc) ->
- lists:reverse(Acc);
-indent_comment([H|T],Col,Acc) ->
- case length(H) + Col of
- I when I > 80 ->
- indent_comment(T,length(H) + 3,[H,"%% ",nl|Acc]);
- I ->
- indent_comment(T,I + 1,[H," "|Acc])
- end.
-
-test_case_names(nist) ->
- [X||X<-test_case_prefix(nist)];
-test_case_names(msx) ->
- [X||X<-lists:map(fun({N,_})->N;(N)when is_list(N) -> N end,test_case_prefix(msx))];
-test_case_names(sun) ->
- test_case_prefix(sun).
-
-abbrev("NISTXMLSchema1-0-20020116.testSet") ->
- nist;
-abbrev("MSXMLSchema1-0-20020116.testSet") ->
- msx;
-abbrev(_) ->
- sun.
-test_case_prefix(msx) ->
- ["att","ct","elem","group","idc_","id",
- {"mgABCD",["mgA","mgB","mgC","mgD"]},
- {"mgEFG",["mgE","mgF","mgG"]},{"mgHIJ",["mgH","mgI","mgJ"]},
- "mgK",{"mgLM",["mgL","mgM"]},"mgN",{"mgOP",["mgO","mgP"]},
- {"mgQR",["mgQ","mgR"]},"mgS",
- {"particlesAB",["particlesA","particlesB"]},
- {"particlesCDE",["particlesC","particlesD","particlesE"]},
- {"particlesFHI",["particlesF","particlesH","particlesI"]},
- "particlesJ",
- {"particlesKOSRTQUVW",
- ["particlesK","particlesO","particlesS","particlesR","particlesT",
- "particlesQ","particlesU","particlesV","particlesW"]},
- {"stABCDE",["stA","stB","stC","stD","stE"]},
- {"stFGH",["stF","stG","stH"]},{"stIJK",["stI","stJ","stK"]},
- "stZ",{"wildABCDEF",["wildA","wildB","wildC","wildD","wildE","wildF"]},
- {"wildGHI",["wildG","wildH","wildI"]},
- {"wildJKLMNQOP",["wildJ","wildK","wildL","wildM","wildN",
- "wildQ","wildO","wildP"]},"wildZ"];
-test_case_prefix(nist) ->
- ["NISTSchema-anyURI","NISTSchema-base64Binary","NISTSchema-boolean",
- "NISTSchema-byte","NISTSchema-date-","NISTSchema-dateTime",
- "NISTSchema-decimal","NISTSchema-double","NISTSchema-duration",
- "NISTSchema-float","NISTSchema-gDay","NISTSchema-gMonth-",
- "NISTSchema-gMonthDay","NISTSchema-gYear-","NISTSchema-gYearMonth",
- "NISTSchema-hexBinary","NISTSchema-ID","NISTSchema-int-",
- "NISTSchema-integer","NISTSchema-language","NISTSchema-long",
- "NISTSchema-Name","NISTSchema-NCName","NISTSchema-negativeInteger",
- "NISTSchema-NMTOKEN","NISTSchema-nonNegativeInteger",
- "NISTSchema-nonPositiveInteger","NISTSchema-normalizedString",
- "NISTSchema-positiveInteger","NISTSchema-QName","NISTSchema-short",
- "NISTSchema-string","NISTSchema-time","NISTSchema-token",
- "NISTSchema-unsignedByte","NISTSchema-unsignedInt",
- "NISTSchema-unsignedLong","NISTSchema-unsignedShort"];
-test_case_prefix(sun) ->
- ["Sun-idc001.nogen", "Sun-idc002.e", "Sun-idc002b.e", "Sun-idc003.e",
- "Sun-idc004.nogen", "Sun-idc004a.e", "Sun-idc005.nogen",
- "Sun-idc006.nogen", "Sun-xsd001", "Sun-xsd002", "Sun-xsd003-1.e",
- "Sun-xsd003-2.e", "Sun-xsd003a", "Sun-xsd003b", "Sun-xsd004",
- "Sun-xsd005", "Sun-xsd006", "Sun-xsd008", "Sun-xsd011", "Sun-xsd012",
- "Sun-xsd013.e", "Sun-xsd014.e", "Sun-xsd015.e", "Sun-xsd016.e",
- "Sun-xsd017.e", "Sun-xsd018.e", "Sun-xsd019.e", "Sun-xsd020.e",
- "Sun-xsd020-2.e", "Sun-xsd020-3.e", "Sun-xsd020-4.e", "Sun-xsd021",
- "Sun-xsd022", "Sun-xsd023.e", "Sun-xsiType1", "Sun-xsiType-block-1",
- "Sun-xsiType-block-2", "Sun-xsiType-block-3", "Sun-xsiType-block-4",
- "Sun-type-and-subst-1"].
-
-comment([$S,$u,$n|_],[TG]) ->
- case xmerl_xpath:string("annotation/documentation/text()",TG) of
- L=[#xmlText{}|_] ->
- ["%% "|[X||#xmlText{value=X}<-L]];
- _ ->
- ["%%"]
- end;
-comment("att",_) ->
- ["%% Syntax Checking for Attribute Declaration",nl];
-comment("ct",_) ->
- ["%% Syntax Checking for top level complexType Declaration.",nl,
- "%% Syntax Checking for simpleContent complexType Declaration.",nl,
- "%% Syntax Checking for comlexContent complexType Declaration",nl,
- "%% complexType Validation checking",nl,
- "%% complexType Schema Component Constraints",nl];
-comment("elem",_) ->
- ["%% 3.3.2 XML Representation of Element Declaration.",nl,
- "%% 3.3.4 Element Declaration Validation Rules.",nl,
- "%% element Validation checking.",nl,
- "%% Regular Expression Validation checking.",nl,
- "%% Bug Regressions Specs section: 3.3.4",nl];
-comment("group",_) ->
- ["%% Syntax Checking Model Group Tests.",nl,
- "%% Content Checking Model Group Tests.",nl];
-comment("idc_",_) ->
- ["%% 3.11.1 The Identity-constraint Definition Schema Component.",nl];
-comment("id",_) ->
- ["%% Identity-constraint Definition Schema Component.",nl,
- "%% Identity-constraint Validation Rules.",nl,
- "%% Selector identity-constraint xpath bnf.",nl,
- "%% Field identity-constraint xpath bnf.",nl,
- "%% XPath validation.",nl,
- "%% Bug Regressions",nl];
-comment("mgABCD",_) ->
- ["%% model groups (ALL).",nl];
-comment("mgEFG",_) ->
- ["%% model groups ( sequence ).",nl];
-comment("mgHIJ",_) ->
- ["%% model groups ( choice ).",nl];
-comment("mgK",_) ->
- ["%% model group validation checking (sequence).",nl];
-comment("mgLM",_) ->
- ["%% model group validation checking (choice, all).",nl];
-comment("mgN",_) ->
- ["%% Element Sequence Valid.",nl];
-comment("mgOP",_) ->
- ["%% All Group Limited.",nl];
-comment("mgQR",_) ->
- ["%% Element Declarations Consistent, 3.8.6",nl];
-comment("mgS",_) ->
- ["%% Deterministic Sequences.",nl];
-comment("particlesAB",_) ->
- ["%% 3.9.1 The Particle Schema Component.",nl];
-comment("particlesCDE",_) ->
- ["%% 3.9.4 Particle Validation Rules: Element Sequence Locally Valid.",nl];
-comment("particlesFHI",_) ->
- ["%% 3.9.6 Schema Component Constraint: Particle ....",nl];
-comment("particlesJ",_) ->
- ["%% 3.9.6 Particle Derivation.",nl];
-comment("particlesKOSRTQUVW",_) ->
- ["%% 3.9.6 Particle Restriction.",nl];
-comment("stABCDE",_) ->
- ["%% Syntax Checking for simpleType Declaration.",nl];
-comment("stFGH",_) ->
- ["%% simpleType Validation checking.",nl];
-comment("stIJK",_) ->
- ["%% simpleType Schema Component Constraints.",nl];
-comment("stZ",_) ->
- ["%% Bug Regressions.",nl];
-comment("wildABCDEF",_) ->
- ["%% Syntax Validation - any.",nl];
-comment("wildGHI",_) ->
- ["%% 3.10.4 Wildcard Validation Rules - any.",nl];
-comment("wildJKLMNQOP",_) ->
- ["%% Syntax Validation - anyAttribute.",nl];
-comment("wildZ",_) ->
- ["%% Bugs - Wildcards.",nl];
-comment("NISTSchema-anyURI",_) ->
- ["%% Data type derived by restriction of anyURI by facets",nl];
-comment("NISTSchema-base64Binary",_) ->
- ["%% Data type derived by restriction of base64binary by facets",nl];
-comment("NISTSchema-boolean",_) ->
- ["%% Data type derived by restriction of boolean by facets",nl];
-comment("NISTSchema-byte",_) ->
- ["%% Data type derived by restriction of byte by facets",nl];
-comment("NISTSchema-date-",_) ->
- ["%% Data type derived by restriction of date by facets",nl];
-comment("NISTSchema-dateTime",_) ->
- ["%% Data type derived by restriction of dateTime by facets",nl];
-comment("NISTSchema-decimal",_) ->
- ["%% Data type derived by restriction of decimal by facets",nl];
-comment("NISTSchema-double",_) ->
- ["%% Data type derived by restriction of double by facets",nl];
-comment("NISTSchema-duration",_) ->
- ["%% Data type derived by restriction of duration by facets",nl];
-comment("NISTSchema-float",_) ->
- ["%% Data type derived by restriction of float by facets",nl];
-comment("NISTSchema-gDay",_) ->
- ["%% Data type derived by restriction of gDay by facets",nl];
-comment("NISTSchema-gMonth-",_) ->
- ["%% Data type derived by restriction of gMonth by facets",nl];
-comment("NISTSchema-gMonthDay",_) ->
- ["%% Data type derived by restriction of gMonthDay by facets",nl];
-comment("NISTSchema-gYear-",_) ->
- ["%% Data type derived by restriction of gYear by facets",nl];
-comment("NISTSchema-gYearMonth",_) ->
- ["%% Data type derived by restriction of gYearMonth by facets",nl];
-comment("NISTSchema-hexBinary",_) ->
- ["%% Data type derived by restriction of hexBinary by facets",nl];
-comment("NISTSchema-ID",_) ->
- ["%% Data type derived by restriction of ID by facets",nl];
-comment("NISTSchema-int-",_) ->
- ["%% Data type derived by restriction of int by facets",nl];
-comment("NISTSchema-integer",_) ->
- ["%% Data type derived by restriction of integer by facets",nl];
-comment("NISTSchema-language",_) ->
- ["%% Data type derived by restriction of language by facets",nl];
-comment("NISTSchema-long",_) ->
- ["%% Data type derived by restriction of long by facets",nl];
-comment("NISTSchema-Name",_) ->
- ["%% Data type derived by restriction of Name by facets",nl];
-comment("NISTSchema-NCName",_) ->
- ["%% Data type derived by restriction of NCName by facets",nl];
-comment("NISTSchema-negativeInteger",_) ->
- ["%% Data type derived by restriction of negativeInteger by facets",nl];
-comment("NISTSchema-NMTOKEN",_) ->
- ["%% Data type derived by restriction of NMTOKEN by facets",nl];
-comment("NISTSchema-nonNegativeInteger",_) ->
- ["%% Data type derived by restriction of nonNegativeInteger by facets",nl];
-comment("NISTSchema-nonPositiveInteger",_) ->
- ["%% Data type derived by restriction of nonPositiveInteger by facets",nl];
-comment("NISTSchema-normalizedString",_) ->
- ["%% Data type derived by restriction of normalizedString by facets",nl];
-comment("NISTSchema-positiveInteger",_) ->
- ["%% Data type derived by restriction of positiveInteger by facets",nl];
-comment("NISTSchema-QName",_) ->
- ["%% Data type derived by restriction of QName by facets",nl];
-comment("NISTSchema-short",_) ->
- ["%% Data type derived by restriction of short by facets",nl];
-comment("NISTSchema-string",_) ->
- ["%% Data type derived by restriction of string by facets",nl];
-comment("NISTSchema-time",_) ->
- ["%% Data type derived by restriction of time by facets",nl];
-comment("NISTSchema-token",_) ->
- ["%% Data type derived by restriction of token by facets",nl];
-comment("NISTSchema-unsignedByte",_) ->
- ["%% Data type derived by restriction of unsignedByte by facets",nl];
-comment("NISTSchema-unsignedInt",_) ->
- ["%% Data type derived by restriction of unsignedInt by facets",nl];
-comment("NISTSchema-unsignedLong",_) ->
- ["%% Data type derived by restriction of unsignedLong by facets",nl];
-comment("NISTSchema-unsignedShort",_) ->
- ["%% Data type derived by restriction of unsignedShort by facets",nl].
-
-
-emit_schema_test(IO) ->
- emit(IO,["schema_test(Config,FileName,XsdBase,Validity) ->",nl,
- indent(3),"{Ok,S} = xmerl_xsd:process_schema(",
- "filename:join([?config(data_dir,Config),FileName]),",nl,
- indent(25),
- "[{xsdbase,filename:join([?config(data_dir,Config),XsdBase])}]),",nl,
- indent(3),"case Validity of",nl,
- indent(6),valid ," when Ok == ok ->",nl,
- indent(9),"{{filename:basename(FileName),S#xsd_state.errors == []},S};", nl,
- indent(6),invalid," when Ok == error ->",nl,
- indent(9), "{{filename:basename(FileName),true},S};",nl,
- indent(6),notKnown," ->",nl,
- indent(9),"{{filename:basename(FileName),true},S};",nl,
- indent(6),"_ -> {{filename:basename(FileName),false},S}",nl,
- indent(3),"end.",nl]),
- emit(IO,["schema_test(Config,FileName,XsdBase,Validity,AccState) ->",nl,
- indent(3),"{Ok,S2} = xmerl_xsd:process_schema(",
- "filename:join([?config(data_dir,Config),FileName]),",nl,
- indent(25),
- "[{xsdbase,filename:join([?config(data_dir,Config),XsdBase])}, AccState]),",nl,
- indent(3),"case Validity of",nl,
- indent(6),valid," when Ok == ok ->",nl,
- indent(9),"{{filename:basename(FileName),S2#xsd_state.errors == []},S2};", nl,
- indent(6),invalid," when Ok == error ->",nl,
- indent(9), "{{filename:basename(FileName),true},S2};",nl,
- indent(6),notKnown," ->",nl,
- indent(9),"{{filename:basename(FileName),true},S2};",nl,
- indent(6),"_ -> {{filename:basename(FileName),false},S2}",nl,
- indent(3),"end.",nl]).
-
-emit_instance_test(IO) ->
- emit(IO,["instance_test(Config,FileName,XMLBase,Validity,State) ->",nl]),
- emit(IO,[indent(3),"{E,_} = xmerl_scan:file(filename:join([?config(data_dir,Config),FileName]),",nl,
- indent(19),"[{xmlbase,filename:join([?config(data_dir,Config),",nl,
- indent(19),"XMLBase])}]),",nl]),
- emit(IO,[indent(3),"{VE,S2} = xmerl_xsd:validate(E,[{state,State}]),",nl]),
- emit(IO,[indent(3),"case Validity of",nl,
- indent(6),"valid when is_record(VE,xmlElement) ->",nl,
- indent(9),"{filename:basename(FileName),S2#xsd_state.errors == []};",nl,
- indent(6),"invalid when VE == error ->",nl,
- indent(9),"{filename:basename(FileName),true};",nl,
- indent(6),"notKnown ->",nl,
- indent(9),"{filename:basename(FileName),true};",nl,
- indent(6),"_ ->",nl,
- indent(9),"{filename:basename(FileName),false}",nl,
- indent(3),"end.",nl]).
-%% emit(IO,[indent(3),"{VE,_} = xmerl_xsd:validate(E,[{state,State}]),",nl]),
-%% emit(IO,[indent(3),"{filename:basename(FileName),VE == ExpectedRetVal}."]).
-
-exclude_case(_Suite,[]) ->
- false;
-exclude_case(Suite,[#xmlAttribute{value=Name}]) ->
- exlude_case(Suite,Name).
-
-exlude_case(msx,Case) ->
- lists:member(Case,["attC002","mgS002","mgS003","mgS004","mgS005"]);
-exlude_case(_,_) ->
- false.