From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Michael Albinus Newsgroups: gmane.emacs.bugs Subject: bug#43252: 27.1; DBus properties lack type hints or overrides Date: Sun, 20 Sep 2020 17:05:47 +0200 Message-ID: <87ft7c8p4k.fsf@gmx.de> References: <87v9gqquct.fsf@ccss.com> <87sgbtqylc.fsf@ccss.com> <87sgbtcvqs.fsf@gmx.de> <87pn6xqtsz.fsf@ccss.com> <87363sl4hs.fsf@gmx.de> <877dt3bnfl.fsf@ccss.com> <878sdj84kn.fsf@gmx.de> <871rjbaq05.fsf@ccss.com> <874ko6979w.fsf@gmx.de> <87v9gm9x9i.fsf@ccss.com> <871rj9k78r.fsf@gmx.de> <87imclwow5.fsf@gmx.de> <87pn6t9rbq.fsf@ccss.com> <87y2lggzvd.fsf@gmx.de> <87h7rzadlo.fsf@ccss.com> <87k0wtrir2.fsf@gmx.de> <87een19x9n.fsf@ccss.com> <87a6xor25b.fsf@gmx.de> <87bli49rem.fsf@ccss.com> <87h7rva0ku.fsf@gmx.de> <875z8aa1bm.fsf@ccss.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25440"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: 43252@debbugs.gnu.org To: Hugh Daschbach Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Sep 20 17:07:34 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kK0w9-0006Vf-SI for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 20 Sep 2020 17:07:33 +0200 Original-Received: from localhost ([::1]:58574 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kK0w8-000863-NS for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 20 Sep 2020 11:07:32 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50766) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kK0ve-00083q-Rp for bug-gnu-emacs@gnu.org; Sun, 20 Sep 2020 11:07:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:40872) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kK0ve-0006nK-Hw for bug-gnu-emacs@gnu.org; Sun, 20 Sep 2020 11:07:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kK0ve-0003ZT-Cw for bug-gnu-emacs@gnu.org; Sun, 20 Sep 2020 11:07:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Albinus Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 20 Sep 2020 15:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43252 X-GNU-PR-Package: emacs Original-Received: via spool by 43252-submit@debbugs.gnu.org id=B43252.160061437513645 (code B ref 43252); Sun, 20 Sep 2020 15:07:02 +0000 Original-Received: (at 43252) by debbugs.gnu.org; 20 Sep 2020 15:06:15 +0000 Original-Received: from localhost ([127.0.0.1]:52413 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kK0uf-0003XU-1X for submit@debbugs.gnu.org; Sun, 20 Sep 2020 11:06:15 -0400 Original-Received: from mout.gmx.net ([212.227.17.20]:37995) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kK0ub-0003XC-9F for 43252@debbugs.gnu.org; Sun, 20 Sep 2020 11:05:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1600614349; bh=t8l1/Q20wXywlgWS4MLLxR63k7eu39rSvA/pZYImsfI=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=QbAoFzkD/LR7B79S1KQrl6UT56VcFxwVWWj64QXYLxg98963o1+89zABqxtenyaV/ JG6p07SOmxMLomMp3MjjmAx697wsXscbCfUufmODS/+hNRAWUpu3qciofc1uPwESAL zwwZJRHXUSzY++GLRt1o3Q/A7FzkRNuHlm5Dvdfo= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from gandalf.gmx.de ([212.86.57.201]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MIx3C-1k3z7v0HjW-00KP9u; Sun, 20 Sep 2020 17:05:49 +0200 In-Reply-To: <875z8aa1bm.fsf@ccss.com> (Hugh Daschbach's message of "Fri, 18 Sep 2020 20:32:29 -0700") X-Provags-ID: V03:K1:iPDvAn12uKyupFK//+iJBr2Tdcgt8+sXIyOuCHSXT8Vku38Xnq3 mp2Dd11/NoA4jpxQ0GnacVAAAe1UGyBQf10XZY9UA06PbELRBWpMVJOFbw1+IDoKunXNeMh 07wl11ncFw1/dx7qvUY3Aix0ZtsTt9XSPaTk0YuKLY7YTEohAZ+P3X1wgTDVx48HD/qikYb K0IgOIE3b84SLMLm0zgyw== X-UI-Out-Filterresults: notjunk:1;V03:K0:j/h2xNHwwPQ=:u4qhEa4Ezg0zwvre40sntJ NiUCmlKBlKJMoi42ThwBLLzeM+W3gzj0ehmd/jBJAl4hVEDGgVWv6MmBRQD/eVH5z+izlPNYD JG+HOJfbESC3A+gCGQ0ymzKAMXJ4ZDLqDGETS3ipcyUJKCgGqyu+XQhPAt3JDZLkTlgLw/sps CG8PZENGYbuz6qXp1xP9sp/7YMWoIaA7T5/v/3QKTt2lOD9x51ILX1QBoh1yxC+c3bte1P/IM T2519OKn4zu2iDP1IT4eK0DTCmAPUQzl3VpLQ6u4xhH7Co5xALVyBNnq4FZYsbpIuq4IObqK7 DTIyoz1JFphgxj6E1dXPBOFs6OLm+2mDaP8pc4uiosilHRd/uDY2v29PJCNoHgTaov7M4B8rk AR/W7rRuMKG9uo14LV6O6P0oDBJ4p7CF5jtJVNYZo5Q6VByx/79XY99nQTEpsh1u5yxUdFRvT QiKQrAsANuO4CfXJVBfNx0Axn+gJwjdJEtnsEyG4n3fOF6pjC+58kzV8B9IhIOi3htvbMUqW8 etvkp9zhgGN0l2hcziV04d7K9KWdyQM9cA1OOu/s0KLuI5nP+6m+Taqqpz45cS3DaieP686iZ 3rsKpR59Tdz68i+SRB64kAl6qBeaIVWGVOb2jb5KmtY+/6sgJ2CemBcYn/Iq3VQIxL1V/6bcl tbqWKqzuaRbUC61Sud64Xg5RF3Kl6wmgvEWkrBOO7UKmDFxmb66KTzxJAHtJ0Ed2KeBvI5vFi QCj64miisaei7rBNRG3WnT3iYCDfyCoQlT1Hb6MqEBWqSen3kdoTnXZyU/jNTOiXqcad35x5 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:188510 Archived-At: Hugh Daschbach writes: Hi Hugh, >>> + >>> + (should ; Should this error >>> instead? >>> + (equal >>> + (dbus-set-property >>> ... >>> + '(:array "seven" "eight" :string "nine")) >> >> Good question. dbus-set-property and dbus-get-property do not >> propagate >> D-Bus errors. Maybe we shall change the functions to do so? I've >> asked >> this already myself. > > I don't have a strong opinion either way. I'm just trying to note > corner cases. Well, I have adapted dbus-set-property and dbus-get-property to propagate the errors. >>> + ;; Test mismatched types in array >>> + >>> + (should ; Oddly enough, register >>> works, but get fails >>> + (equal >> >> Hmm, yes. dbus-register-property does not perform a local type >> check. And honestly, I don't want to do it; I let the D-Bus daemon >> do >> the job. > > Great. Should be checked now. When dbus-register-property is called, it applies internally a dbus-set-property or dbus-get-property now. As side effect, the value is checked by the D-Bus daemon, and you shall see errors. >> And even if you would have prefixed the value with :byte, there >> won't be >> an error. In dbusbind.c, byte values are simply computed by taking >> the >> modulo 255: >> >> unsigned char val = XFIXNAT (object) & 0xFF; >> >> ":byte 1024" is equal to ":byte 4". Similar conversions happen for >> the >> other basic types, based on numbers. > > Good. I haven't thought deeply enough about DBus to anticipate > truncation. I've added a test for this, an extract of which is below. > The get returns nil instead of 4. I can change the expected value, > but > wanted to run this by you first. Of course I'm wrong, ":byte 1024" shall be the same as "byte 0". > (ert-deftest dbus-test-ad-hoc () > (dbus-ignore-errors (dbus-unregister-service :session > dbus--test-service)) > (dbus-register-service :session dbus--test-service) > (should ; Test value truncation > (equal > (dbus-register-property > :session dbus--test-service dbus--test-path > dbus--test-interface "ByteValue" :read :byte 1024) > `((:property :session ,dbus--test-interface "ByteValue") > (,dbus--test-service ,dbus--test-path)))) > > (should ; Returns 0 instead of 4. > (equal > (dbus-get-property > :session dbus--test-service dbus--test-path > dbus--test-interface "ByteValue") > 4)) Of course 0. As said, I was wrong. > (dbus-unregister-service :session dbus--test-service)) > > Should I update the expectation to zero? Yes, please. > Cheers, > Hugh Best regards, Michael.