message: Add test case for constant folding/model pruning on the input to a `tf.cond()`.
  This adds coverage for the previously broken case where using a `tf.constant()`
  as the predicate for a conditional would be optimized incorrectly.
diff: @@ -1038,6 +1038,31 @@ class ControlFlowTest(test.TestCase):
  r = control_flow_ops.cond(foo()[1], lambda: 1.0, lambda: 2.0)
  self.assertEqual(self.evaluate(r), 1.0)
  + @test_util.run_v1_only("Tests Session.run() pruning logic.")
  + def testCondFeedConstantPredicate(self):
  + with self.cached_session() as sess:
  + value = constant_op.constant(37.0)
  + predicate = constant_op.constant(True)
  + cond_output = control_flow_ops.cond(
  + predicate, lambda: constant_op.constant(0.0), lambda: value)
  + result = array_ops.identity(cond_output)
  + self.assertEqual(37.0, sess.run(result, feed_dict={predicate: False}))
  + self.assertEqual(0.0, sess.run(result, feed_dict={predicate: True}))
  + self.assertEqual(0.0, sess.run(result))
  +
  + @test_util.run_v1_only("Tests Session.run() pruning logic.")
  + def testCondFeedPlaceholderWithDefaultPredicate(self):
  + with self.cached_session() as sess:
  + value = constant_op.constant(37.0)
  + predicate = array_ops.placeholder_with_default(
  + constant_op.constant(True), [])
  + cond_output = control_flow_ops.cond(
  + predicate, lambda: constant_op.constant(0.0), lambda: value)
  + result = array_ops.identity(cond_output)
  + self.assertAllEqual(37.0, sess.run(result, feed_dict={predicate: False}))
  + self.assertAllEqual(0.0, sess.run(result, feed_dict={predicate: True}))
  + self.assertAllEqual(0.0, sess.run(result))
  +
  @test_util.run_in_graph_and_eager_modes
  def testCondAutoControlDeps(self):
  