rdf-mt/commit
Added running tests from remote test data
author | Jan Wielemaker |
---|---|
Tue Dec 17 16:24:09 2013 +0100 | |
committer | Jan Wielemaker |
Tue Dec 17 16:24:09 2013 +0100 | |
commit | 97f0b9124e646466986a1c9aac352bff4559f096 |
tree | 7c5a5ef08b402a465b6757059e6522ac5723c6d9 |
parent | 48ebfede929674cf64f9624563498a8902451952 |
Diff style: patch stat
diff --git a/config-available/rdf-mt.pl b/config-available/rdf-mt.pl index 3146708..ba4b6b0 100644 --- a/config-available/rdf-mt.pl +++ b/config-available/rdf-mt.pl @@ -29,7 +29,7 @@ */ :- module(rdf_mt, - [ load_manifest/0, + [ load_manifest/1, run_tests/0, run_test/1, % +Test @@ -42,6 +42,8 @@ :- use_module(library(lists)). :- use_module(library(semweb/rdf_db)). :- use_module(library(semweb/rdf_turtle_write)). +:- use_module(library(http/http_open)). +:- use_module(library(http/http_ssl_plugin)). :- use_module(library(rdf_mt/earl)). :- use_module(library(rdf_mt/manifest)). @@ -56,18 +58,25 @@ :- dynamic test_result/3. % Test, Time, Result -default_manifest('rdf-ff6d041b8705/rdf-mt/tests/manifest.ttl'). +default_manifest( + local, + 'rdf-ff6d041b8705/rdf-mt/tests/manifest.ttl'). +default_manifest( + remote, + 'https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-mt/tests/manifest.ttl'). :- initialization debug(mt(_)). -%% load_manifest +%% load_manifest(+Type) % % Load default test manifest +% +% @arg Type is one of =local= or =remote= -load_manifest :- +load_manifest(Type) :- clean_manifests, - default_manifest(MF), - load_manifest(MF). + default_manifest(Type, MF), + load_manifest(MF, []). %% run_tests % @@ -138,7 +147,7 @@ text_of(literal(Text), Text) :- atomic(Text). load_test_data(Test) :- forall(mf_rdf(Test, mf:action, Data), - rdf_load(Data, [silent(true), graph(data)])). + load_data(Data, data)). %% load_test_result(+Test) % @@ -146,7 +155,34 @@ load_test_data(Test) :- load_test_result(Test) :- forall(mf_rdf(Test, mf:result, Data), - rdf_load(Data, [silent(true), graph(result)])). + load_data(Data, result)). + +load_data(URL, Graph) :- + uri_is_global(URL), !, + setup_call_cleanup( + http_open(URL, In, + [ cert_verify_hook(ssl_verify) + ]), + rdf_load(In, + [ silent(true), + graph(Graph) + ]), + close(In)). +load_data(URL, Graph) :- + rdf_load(URL, + [ silent(true), + graph(Graph) + ]). + +:- public ssl_verify/5. + +%% ssl_verify(+SSL, +ProblemCert, +AllCerts, +FirstCert, +Error) +% +% Accept all certificates. + +ssl_verify(_SSL, + _ProblemCertificate, _AllCertificates, _FirstCertificate, + _Error). false_result_test(Test) :- mf_rdf(Test, mf:result, literal(type(_,false))). diff --git a/lib/rdf_mt/manifest.pl b/lib/rdf_mt/manifest.pl index 17ff8c0..852119c 100644 --- a/lib/rdf_mt/manifest.pl +++ b/lib/rdf_mt/manifest.pl @@ -29,7 +29,7 @@ */ :- module(rdf_mt_manifest, - [ load_manifest/1, % +File + [ load_manifest/2, % +File, +Options clean_manifests/0, mf_test/1, % ?Test mf_rdf/3, % S,P,O @@ -37,6 +37,8 @@ ]). :- use_module(library(semweb/turtle)). :- use_module(library(apply)). +:- use_module(library(http/http_open)). +:- use_module(library(http/http_ssl_plugin)). /** <module> Process an RDF test manifest */ @@ -55,17 +57,38 @@ rdft, 'http://www.w3.org/ns/rdftest#'). -%% load_manifest(+File) +%% load_manifest(+File, +Options) % % Load a new manifest -load_manifest(File) :- +load_manifest(URL, _Options) :- + uri_is_global(URL), !, + atom_concat('__', URL, BNPrefix), + setup_call_cleanup( + http_open(URL, In, + [ cert_verify_hook(ssl_verify) + ]), + rdf_read_turtle(In, Triples, [anon_prefix(BNPrefix)]), + close(In)), + maplist(mf_assert, Triples), + assert(mf_manifest(URL)). +load_manifest(File, _Options) :- uri_file_name(URI, File), atom_concat('__', URI, BNPrefix), rdf_read_turtle(File, Triples, [anon_prefix(BNPrefix)]), maplist(mf_assert, Triples), assert(mf_manifest(URI)). +:- public ssl_verify/5. + +%% ssl_verify(+SSL, +ProblemCert, +AllCerts, +FirstCert, +Error) +% +% Accept all certificates. + +ssl_verify(_SSL, + _ProblemCertificate, _AllCertificates, _FirstCertificate, + _Error). + mf_assert(rdf(S,P,O)) :- assert(mf_rdf(S,P,O)).