This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: cec-compliance: move top-level adapter tests to cec-test-adapter.cpp
Author:  Hans Verkuil <hans.verk...@cisco.com>
Date:    Tue Aug 8 14:14:13 2017 +0200

Refactor the code a bit.

Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>

 utils/cec-compliance/cec-compliance.cpp   | 54 ++----------------------------
 utils/cec-compliance/cec-compliance.h     |  2 ++
 utils/cec-compliance/cec-test-adapter.cpp | 55 +++++++++++++++++++++++++++++++
 3 files changed, 59 insertions(+), 52 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=3c31833b840b2a10fe02163d719c66bec7dadf1d
diff --git a/utils/cec-compliance/cec-compliance.cpp 
b/utils/cec-compliance/cec-compliance.cpp
index 61fee6678f76..87e1252a74a2 100644
--- a/utils/cec-compliance/cec-compliance.cpp
+++ b/utils/cec-compliance/cec-compliance.cpp
@@ -1617,58 +1617,8 @@ int main(int argc, char **argv)
        printf("Find remote devices:\n");
        printf("\tPolling: %s\n", ok(poll_remote_devs(&node)));
 
-       if (options[OptTestAdapter]) {
-               /* Required ioctls */
-
-               printf("\nCEC API:\n");
-               printf("\tCEC_ADAP_G_CAPS: %s\n", ok(testCap(&node)));
-               printf("\tCEC_DQEVENT: %s\n", ok(testDQEvent(&node)));
-               printf("\tCEC_ADAP_G/S_PHYS_ADDR: %s\n", 
ok(testAdapPhysAddr(&node)));
-               if (node.caps & CEC_CAP_PHYS_ADDR)
-                       doioctl(&node, CEC_ADAP_S_PHYS_ADDR, &node.phys_addr);
-               if (node.phys_addr == CEC_PHYS_ADDR_INVALID) {
-                       fprintf(stderr, "FAIL: without a valid physical address 
this test cannot proceed.\n");
-                       fprintf(stderr, "Make sure that this CEC adapter is 
connected to another HDMI sink or source.\n");
-                       exit(1);
-               }
-               printf("\tCEC_ADAP_G/S_LOG_ADDRS: %s\n", 
ok(testAdapLogAddrs(&node)));
-               fcntl(node.fd, F_SETFL, fcntl(node.fd, F_GETFL) & ~O_NONBLOCK);
-               if (node.caps & CEC_CAP_LOG_ADDRS) {
-                       struct cec_log_addrs clear = { };
-
-                       doioctl(&node, CEC_ADAP_S_LOG_ADDRS, &clear);
-                       doioctl(&node, CEC_ADAP_S_LOG_ADDRS, &laddrs);
-               }
-               doioctl(&node, CEC_ADAP_G_LOG_ADDRS, &laddrs);
-               if (laddrs.log_addr_mask != node.adap_la_mask)
-                       printf("\tNew Logical Address Mask   : 0x%04x\n", 
laddrs.log_addr_mask);
-               // The LAs may have changed after these tests, so update these 
node fields
-               node.num_log_addrs = laddrs.num_log_addrs;
-               memcpy(node.log_addr, laddrs.log_addr, laddrs.num_log_addrs);
-               node.adap_la_mask = laddrs.log_addr_mask;
-
-               printf("\tCEC_TRANSMIT: %s\n", ok(testTransmit(&node)));
-               printf("\tCEC_RECEIVE: %s\n", ok(testReceive(&node)));
-               __u32 mode = CEC_MODE_INITIATOR;
-               doioctl(&node, CEC_S_MODE, &mode);
-               printf("\tCEC_TRANSMIT/RECEIVE (non-blocking): %s\n", 
ok(testNonBlocking(&node)));
-               fcntl(node.fd, F_SETFL, fcntl(node.fd, F_GETFL) & ~O_NONBLOCK);
-               doioctl(&node, CEC_S_MODE, &mode);
-
-               struct node node2 = node;
-
-               if ((node2.fd = open(device, O_RDWR)) < 0) {
-                       fprintf(stderr, "Failed to open %s: %s\n", device,
-                               strerror(errno));
-                       exit(1);
-               }
-
-               printf("\tCEC_G/S_MODE: %s\n", ok(testModes(&node, &node2)));
-               close(node2.fd);
-               doioctl(&node, CEC_S_MODE, &mode);
-               printf("\tCEC_EVENT_LOST_MSGS: %s\n", ok(testLostMsgs(&node)));
-               fcntl(node.fd, F_SETFL, fcntl(node.fd, F_GETFL) & ~O_NONBLOCK);
-       }
+       if (options[OptTestAdapter])
+               testAdapter(node, laddrs, device);
        printf("\n");
 
        printf("Network topology:\n");
diff --git a/utils/cec-compliance/cec-compliance.h 
b/utils/cec-compliance/cec-compliance.h
index 8eb6873c7f29..c4fb317063a1 100644
--- a/utils/cec-compliance/cec-compliance.h
+++ b/utils/cec-compliance/cec-compliance.h
@@ -389,6 +389,8 @@ int testReceive(struct node *node);
 int testNonBlocking(struct node *node);
 int testModes(struct node *node, struct node *node2);
 int testLostMsgs(struct node *node);
+void testAdapter(struct node &node, struct cec_log_addrs &laddrs,
+                const char *device);
 
 // CEC core tests
 int testCore(struct node *node);
diff --git a/utils/cec-compliance/cec-test-adapter.cpp 
b/utils/cec-compliance/cec-test-adapter.cpp
index 7e2bd48cd87a..eba59ec71bd3 100644
--- a/utils/cec-compliance/cec-test-adapter.cpp
+++ b/utils/cec-compliance/cec-test-adapter.cpp
@@ -932,3 +932,58 @@ int testLostMsgs(struct node *node)
 
        return 0;
 }
+
+void testAdapter(struct node &node, struct cec_log_addrs &laddrs,
+                const char *device)
+{
+       /* Required ioctls */
+
+       printf("\nCEC API:\n");
+       printf("\tCEC_ADAP_G_CAPS: %s\n", ok(testCap(&node)));
+       printf("\tCEC_DQEVENT: %s\n", ok(testDQEvent(&node)));
+       printf("\tCEC_ADAP_G/S_PHYS_ADDR: %s\n", ok(testAdapPhysAddr(&node)));
+       if (node.caps & CEC_CAP_PHYS_ADDR)
+               doioctl(&node, CEC_ADAP_S_PHYS_ADDR, &node.phys_addr);
+       if (node.phys_addr == CEC_PHYS_ADDR_INVALID) {
+               fprintf(stderr, "FAIL: without a valid physical address this 
test cannot proceed.\n");
+               fprintf(stderr, "Make sure that this CEC adapter is connected 
to another HDMI sink or source.\n");
+               exit(1);
+       }
+       printf("\tCEC_ADAP_G/S_LOG_ADDRS: %s\n", ok(testAdapLogAddrs(&node)));
+       fcntl(node.fd, F_SETFL, fcntl(node.fd, F_GETFL) & ~O_NONBLOCK);
+       if (node.caps & CEC_CAP_LOG_ADDRS) {
+               struct cec_log_addrs clear = { };
+
+               doioctl(&node, CEC_ADAP_S_LOG_ADDRS, &clear);
+               doioctl(&node, CEC_ADAP_S_LOG_ADDRS, &laddrs);
+       }
+       doioctl(&node, CEC_ADAP_G_LOG_ADDRS, &laddrs);
+       if (laddrs.log_addr_mask != node.adap_la_mask)
+               printf("\tNew Logical Address Mask   : 0x%04x\n", 
laddrs.log_addr_mask);
+       // The LAs may have changed after these tests, so update these node 
fields
+       node.num_log_addrs = laddrs.num_log_addrs;
+       memcpy(node.log_addr, laddrs.log_addr, laddrs.num_log_addrs);
+       node.adap_la_mask = laddrs.log_addr_mask;
+
+       printf("\tCEC_TRANSMIT: %s\n", ok(testTransmit(&node)));
+       printf("\tCEC_RECEIVE: %s\n", ok(testReceive(&node)));
+       __u32 mode = CEC_MODE_INITIATOR;
+       doioctl(&node, CEC_S_MODE, &mode);
+       printf("\tCEC_TRANSMIT/RECEIVE (non-blocking): %s\n", 
ok(testNonBlocking(&node)));
+       fcntl(node.fd, F_SETFL, fcntl(node.fd, F_GETFL) & ~O_NONBLOCK);
+       doioctl(&node, CEC_S_MODE, &mode);
+
+       struct node node2 = node;
+
+       if ((node2.fd = open(device, O_RDWR)) < 0) {
+               fprintf(stderr, "Failed to open %s: %s\n", device,
+                       strerror(errno));
+               exit(1);
+       }
+
+       printf("\tCEC_G/S_MODE: %s\n", ok(testModes(&node, &node2)));
+       close(node2.fd);
+       doioctl(&node, CEC_S_MODE, &mode);
+       printf("\tCEC_EVENT_LOST_MSGS: %s\n", ok(testLostMsgs(&node)));
+       fcntl(node.fd, F_SETFL, fcntl(node.fd, F_GETFL) & ~O_NONBLOCK);
+}

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to