On Thu, Nov 30, 2023 at 10:05:43AM -0500, Andrea Bolognani wrote: > On Thu, Nov 30, 2023 at 09:30:28AM -0500, Andrea Bolognani wrote: > > On Thu, Nov 30, 2023 at 02:07:55PM +0000, Daniel P. Berrangé wrote: > > > +++ b/scripts/rpcgen/tests/test_demo.c > > > @@ -3,6 +3,10 @@ > > > #include <rpc/xdr.h> > > > #include <stdbool.h> > > > > > > +#ifdef __APPLE__ > > > +# define xdr_uint64_t xdr_u_int64_t > > > +#endif > > > > For the long run, I think it would make more sense to have this > > workaround as part of the generator's output, so that using > > VIR_TEST_REGENERATE_OUTPUT will produce the same results regardless > > of whether it's run on Linux or macOS. It would also avoid the need > > to add a similar workaround somewhere in the library code the day we > > start needing uint64_t anywhere in our RPC protocol. > > > > As a short-term solution, it's fine :) > > Never mind, this very obviously doesn't pass muster: > > E AssertionError: assert '\nvoid xdr_T...rn TRUE;\n}\n' == > '\nvoid xdr_T...rn TRUE;\n}\n' > E Skipping 9072 identical leading characters in diff, use -v to show > E - if (!xdr_uint64_t(xdrs, &objp->suh)) > E + if (!xdr_u_int64_t(xdrs, &objp->suh)) > E ? + > E return FALSE; > E if (!xdr_bool(xdrs, &objp->sb)) > E return FALSE;... > E > E ...Full output truncated (90 lines hidden), use '-vv' to show > > My test setup was a bit wonky so I initially failed to catch it. > Apologies for the noise. > > The approach I suggested above would work, I think, but from a very > quick look at the generator I wasn't able to figure out how it > decides whether to use xdr_uint64_t or xdr_u_int64_t in the output. In scripts/rpcgen/rpcgen/generator.py this method: def visit_type_unsignedhyper(self, obj, indent, context): if context == "func" and platform.system() == "Darwin": return "%su_int64_t" % indent else: return "%suint64_t" % indent With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| _______________________________________________ Devel mailing list -- devel@xxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx