Test cases for examples of ext call error handling.
Fix to SF bug #414743 based on Michael Hudson's patch #414750.
diff --git a/Lib/test/output/test_extcall b/Lib/test/output/test_extcall
index 64754cf..58f52d4 100644
--- a/Lib/test/output/test_extcall
+++ b/Lib/test/output/test_extcall
@@ -25,7 +25,12 @@
 f() keywords must be strings
 h() got an unexpected keyword argument 'e'
 h() argument after * must be a sequence
+dir() argument after * must be a sequence
+None object argument after * must be a sequence
 h() argument after ** must be a dictionary
+dir() argument after ** must be a dictionary
+None object argument after ** must be a dictionary
+dir() got multiple values for keyword argument 'b'
 3 512 1
 3
 3
diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py
index 9e6da62..4720901 100644
--- a/Lib/test/test_extcall.py
+++ b/Lib/test/test_extcall.py
@@ -138,12 +138,47 @@
     print "should raise TypeError: * argument must be a tuple"
 
 try:
+    dir(*h)
+except TypeError, err:
+    print err
+else:
+    print "should raise TypeError: * argument must be a tuple"
+
+try:
+    None(*h)
+except TypeError, err:
+    print err
+else:
+    print "should raise TypeError: * argument must be a tuple"
+
+try:
     h(**h)
 except TypeError, err:
     print err
 else:
     print "should raise TypeError: ** argument must be a dictionary"
 
+try:
+    dir(**h)
+except TypeError, err:
+    print err
+else:
+    print "should raise TypeError: ** argument must be a dictionary"
+
+try:
+    None(**h)
+except TypeError, err:
+    print err
+else:
+    print "should raise TypeError: ** argument must be a dictionary"
+
+try:
+    dir(b=1,**{'b':1})
+except TypeError, err:
+    print err
+else:
+    print "should raise TypeError: dir() got multiple values for keyword argument 'b'"
+
 def f2(*a, **b):
     return a, b