<?xml version="1.0" encoding="UTF-8"?>

<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">

<test>
  <input>/**
 * annotation_object_foreach:
 * @object: a #AnnotationObject
 * @func: (scope call): Callback to invoke
 * @user_data: Callback user data
 *
 * Test taking a call-scoped callback
 **/</input>
  <parser>
    <docblock>
      <identifier>
        <name>annotation_object_foreach</name>
      </identifier>
      <parameters>
        <parameter>
          <name>object</name>
          <description>a #AnnotationObject</description>
        </parameter>
        <parameter>
          <name>func</name>
          <annotations>
            <annotation>
              <name>scope</name>
              <options>
                <option>
                  <name>call</name>
                </option>
              </options>
            </annotation>
          </annotations>
          <description>Callback to invoke</description>
        </parameter>
        <parameter>
          <name>user_data</name>
          <description>Callback user data</description>
        </parameter>
      </parameters>
      <description>Test taking a call-scoped callback</description>
    </docblock>
  </parser>
  <output>/**
 * annotation_object_foreach:
 * @object: a #AnnotationObject
 * @func: (scope call): Callback to invoke
 * @user_data: Callback user data
 *
 * Test taking a call-scoped callback
 */</output>
</test>

<test>
  <input>/**
 * regress_test_callback_destroy_notify:
 * @callback: (scope notified):
 *
 * Notified - callback persists until a DestroyNotify delegate
 * is invoked.
 **/</input>
  <parser>
    <docblock>
      <identifier>
        <name>regress_test_callback_destroy_notify</name>
      </identifier>
      <parameters>
        <parameter>
          <name>callback</name>
          <annotations>
            <annotation>
              <name>scope</name>
              <options>
                <option>
                  <name>notified</name>
                </option>
              </options>
            </annotation>
          </annotations>
        </parameter>
      </parameters>
      <description>Notified - callback persists until a DestroyNotify delegate
is invoked.</description>
    </docblock>
  </parser>
  <output>/**
 * regress_test_callback_destroy_notify:
 * @callback: (scope notified):
 *
 * Notified - callback persists until a DestroyNotify delegate
 * is invoked.
 */</output>
</test>

<test>
  <input>/**
 * regress_test_callback_async:
 * @callback: (scope async):
 *
 **/</input>
  <parser>
    <docblock>
      <identifier>
        <name>regress_test_callback_async</name>
      </identifier>
      <parameters>
        <parameter>
          <name>callback</name>
          <annotations>
            <annotation>
              <name>scope</name>
              <options>
                <option>
                  <name>async</name>
                </option>
              </options>
            </annotation>
          </annotations>
        </parameter>
      </parameters>
    </docblock>
  </parser>
  <output>/**
 * regress_test_callback_async:
 * @callback: (scope async):
 */</output>
</test>

</tests>
