Skip to content

Allow conditional function chaining on STRICT_EXPECTED_CALL #305

@mattdurak

Description

@mattdurak

Current code might do something like this:

static void setup(int* optional_value)
{
    if (optional_value != NULL)
    {
        STRICT_EXPECTED_CALL(foo(IGNORED_ARG))
            .CopyOutArgumentBuffer_result(optional_value, sizeof(optional_value));
    }
    else
    {
        STRICT_EXPECTED_CALL(foo(IGNORED_ARG));
    }
}

Would be nice to reduce that to something like:

static void setup(int* optional_value)
{
    STRICT_EXPECTED_CALL(foo(IGNORED_ARG))
        .If(optional_value != NULL)
        .CopyOutArgumentBuffer_result(optional_value, sizeof(optional_value));
    // perhaps needs .EndIf()
}

Alternatively, something like this could work:

static void setup(int* optional_value)
{
    HELPER_TO_GET_TYPE x = STRICT_EXPECTED_CALL(foo(IGNORED_ARG));
    if (optional_value != NULL)
    {
        x.CopyOutArgumentBuffer_result(optional_value, sizeof(optional_value));
    }
}

Or maybe:

static void setup(int* optional_value)
{
    STRICT_EXPECTED_CALL(foo(IGNORED_ARG)).SaveExpectation(x);
    if (optional_value != NULL)
    {
        x.CopyOutArgumentBuffer_result(optional_value, sizeof(optional_value));
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions