<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run_with_plugins(plugin_list):
 """ Carry out a test run with the supplied list of plugin instances. The plugins are expected to identify the object to run. Parameters: plugin_list: a list of plugin instances (objects which implement some subset of PluginInterface) Returns: exit code as an integer. The default behaviour (which may be overridden by plugins) is to return a 0 exit code if the test run succeeded, and 1 if it failed. """

    composite = core.PluginComposite(plugin_list)

    to_run = composite.get_object_to_run()

    test_run = core.TestRun(to_run, composite)
    test_run.run()

    return composite.get_exit_code()