def METHOD_NAME(env, extra_data):
    rel_project_path = 'examples/protocols/pppos_client'
    dut = env.get_dut('pppos_client', rel_project_path)
    project_path = os.path.join(dut.app.get_sdk_path(), rel_project_path)
    modem_port = '/dev/ttyUSB{}'.format(0 if dut.port.endswith('1') else 1)
    with SerialThread(modem_port, os.path.join(project_path, 'serial.log')):
        dut.start_app()
        dut.expect_all('pppos_example: Module: 0G Dummy Model',
                       'pppos_example: Operator: "ESP Network"',
                       'pppos_example: IMEI: 0123456789',
                       'pppos_example: IMSI: ESP',
                       'pppos_example: rssi: 4, ber: 0',
                       'pppos_example: Battery voltage: 0 mV',
                       'pppos_example: Modem PPP Started',
                       timeout=60)
    cmd = ('pppd {} 115200 10.0.0.1:10.0.0.2 logfile {} local noauth debug nocrtscts nodetach +ipv6'
           ''.format(modem_port, os.path.join(project_path, 'ppp.log')))
    with ttfw_idf.CustomProcess(cmd, '/dev/null'):  # Nothing is printed here
        dut.expect_all('pppos_example: Modem Connect to PPP Server',
                       'pppos_example: IP          : 10.0.0.2',
                       'pppos_example: Netmask     : 255.255.255.255',
                       'pppos_example: Gateway     : 10.0.0.1',
                       'pppos_example: Name Server1: 0.0.0.0',
                       'pppos_example: Name Server2: 0.0.0.0',
                       'pppos_example: GOT ip event!!!',
                       'pppos_example: MQTT other event id: 7',
                       # There are no fake DNS server and MQTT server set up so the example fails at this point
                       'esp-tls: couldn\'t get hostname',
                       'MQTT_CLIENT: Error transport connect',
                       'pppos_example: MQTT_EVENT_ERROR',
                       'pppos_example: MQTT_EVENT_DISCONNECTED')