closes bpo-31596: Add an interface for pthread_getcpuclockid(3) (#3756)

diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
index b2aedc3..1456748 100644
--- a/Lib/test/test_time.py
+++ b/Lib/test/test_time.py
@@ -7,6 +7,7 @@
 import sys
 import sysconfig
 import time
+import threading
 import unittest
 try:
     import _testcapi
@@ -80,6 +81,25 @@
         b = time.clock_gettime(time.CLOCK_MONOTONIC)
         self.assertLessEqual(a, b)
 
+    @unittest.skipUnless(hasattr(time, 'pthread_getcpuclockid'),
+                         'need time.pthread_getcpuclockid()')
+    @unittest.skipUnless(hasattr(time, 'clock_gettime'),
+                         'need time.clock_gettime()')
+    @unittest.skipUnless(hasattr(time, 'CLOCK_THREAD_CPUTIME_ID'),
+                         'need time.CLOCK_THREAD_CPUTIME_ID')
+    def test_pthread_getcpuclockid(self):
+        clk_id = time.pthread_getcpuclockid(threading.get_ident())
+        self.assertTrue(type(clk_id) is int)
+        self.assertNotEqual(clk_id, time.CLOCK_THREAD_CPUTIME_ID)
+        # This should suffice to show that both calls are measuring the same clock.
+        t1 = time.clock_gettime(clk_id)
+        t2 = time.clock_gettime(time.CLOCK_THREAD_CPUTIME_ID)
+        t3 = time.clock_gettime(clk_id)
+        t4 = time.clock_gettime(time.CLOCK_THREAD_CPUTIME_ID)
+        self.assertLessEqual(t1, t2)
+        self.assertLessEqual(t2, t3)
+        self.assertLessEqual(t3, t4)
+
     @unittest.skipUnless(hasattr(time, 'clock_getres'),
                          'need time.clock_getres()')
     def test_clock_getres(self):