| 971 | } |
| 972 | |
| 973 | static int |
| 974 | xstcMetadata(const char *metadata, const char *base) { |
| 975 | xmlDocPtr doc; |
| 976 | xmlNodePtr cur; |
| 977 | xmlChar *contributor; |
| 978 | xmlChar *name; |
| 979 | int ret = 0; |
| 980 | |
| 981 | doc = xmlReadFile(metadata, NULL, XML_PARSE_NOENT); |
| 982 | if (doc == NULL) { |
| 983 | fprintf(stderr, "Failed to parse %s\n", metadata); |
| 984 | return(-1); |
| 985 | } |
| 986 | |
| 987 | cur = xmlDocGetRootElement(doc); |
| 988 | if ((cur == NULL) || (!xmlStrEqual(cur->name, BAD_CAST "testSet"))) { |
| 989 | fprintf(stderr, "Unexpected format %s\n", metadata); |
| 990 | return(-1); |
| 991 | } |
| 992 | contributor = xmlGetProp(cur, BAD_CAST "contributor"); |
| 993 | if (contributor == NULL) { |
| 994 | contributor = xmlStrdup(BAD_CAST "Unknown"); |
| 995 | } |
| 996 | name = xmlGetProp(cur, BAD_CAST "name"); |
| 997 | if (name == NULL) { |
| 998 | name = xmlStrdup(BAD_CAST "Unknown"); |
| 999 | } |
| 1000 | printf("## %s test suite for Schemas version %s\n", contributor, name); |
| 1001 | xmlFree(contributor); |
| 1002 | xmlFree(name); |
| 1003 | |
| 1004 | cur = getNext(cur, "./ts:testGroup[1]"); |
| 1005 | if ((cur == NULL) || (!xmlStrEqual(cur->name, BAD_CAST "testGroup"))) { |
| 1006 | fprintf(stderr, "Unexpected format %s\n", metadata); |
| 1007 | ret = -1; |
| 1008 | goto done; |
| 1009 | } |
| 1010 | while (cur != NULL) { |
| 1011 | xstcTestGroup(cur, base); |
| 1012 | cur = getNext(cur, "following-sibling::ts:testGroup[1]"); |
| 1013 | } |
| 1014 | |
| 1015 | done: |
| 1016 | xmlFreeDoc(doc); |
| 1017 | return(ret); |
| 1018 | } |
| 1019 | |
| 1020 | /************************************************************************ |
| 1021 | * * |
no test coverage detected