ref: f8223062d451ffdb598325f8fdf060897226bfe5
parent: 60002643548ee5fcde0f8b176dc1360da03adbb8
author: rodri <rgl@antares-labs.eu>
date: Thu Jun 19 14:22:18 EDT 2025
test: add objexport(2) testing
--- a/test/main.c
+++ b/test/main.c
@@ -7,9 +7,36 @@
static char fd0[] = "/fd/0";
void
+replacetexfileexts(OBJMaterlist *ml, char *newext)
+{
+ OBJMaterial *m;
+ char *s;
+ int i;
+
+ for(i = 0; i < nelem(ml->mattab); i++)
+ for(m = ml->mattab[i]; m != nil; m = m->next){
+ if(m->map_Kd != nil){
+ s = strrchr(m->map_Kd->filename, '.');
+ if(s != nil && strlen(newext) <= strlen(++s))
+ memmove(s, newext, strlen(newext));
+ }
+ if(m->map_Ks != nil){
+ s = strrchr(m->map_Ks->filename, '.');
+ if(s != nil && strlen(newext) <= strlen(++s))
+ memmove(s, newext, strlen(newext));
+ }
+ if(m->norm != nil){
+ s = strrchr(m->norm->filename, '.');
+ if(s != nil && strlen(newext) <= strlen(++s))
+ memmove(s, newext, strlen(newext));
+ }
+ }
+}
+
+void
usage(void)
{
- fprint(2, "usage: %s [file]\n", argv0);
+ fprint(2, "usage: %s [file [dstdir]]\n", argv0);
exits("usage");
}
@@ -17,25 +44,37 @@
main(int argc, char *argv[])
{
OBJ *obj;
- char *f;
+ char *f, *d;
f = fd0;
+ d = nil;
OBJfmtinstall();
ARGBEGIN{
default: usage();
}ARGEND;
- if(argc > 1)
+ if(argc > 2)
usage();
if(argc == 1)
f = argv[0];
+ else if(argc == 2){
+ f = argv[0];
+ d = argv[1];
+ }
obj = objparse(f);
if(obj == nil)
sysfatal("objparse: %r");
- if(obj->materials != nil)
- print("%M\n", obj->materials);
- print("%O\n", obj);
+// replacetexfileexts(obj->materials, "png");
+
+ if(d == nil){
+ if(obj->materials != nil)
+ print("%M\n", obj->materials);
+ print("%O\n", obj);
+ }else{
+ if(objexport(d, obj) < 0)
+ sysfatal("objexport: %r");
+ }
objfree(obj);
exits(nil);
}
--
⑨