Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/tools/tools/aadevtools/validation/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 1 kB image not shown  

Impressum test_logs.py

  Sprache: Python
 

#!/usr/bin/env python2.7 -B

import logs
import ps

import datetime
import StringIO

def test_empty():
  """Test parsing no tag and no text, not well formed."""
  expected = [ logs.LogLine(None"03-29 00:46:58.872""1000""1815""1816""I""",
      "") ]
  text = """[ 03-29 00:46:58.872  1000: 1815: 1816 I/ ]

"""
  check_parsing(expected, text)


def test_none():
  """Test parsing no tag and no text."""
  expected = [ logs.LogLine(None"03-29 00:46:58.872""1000""1815""1816""I""",
      "") ]
  text = """[ 03-29 00:46:58.872  1000: 1815: 1816 I/ ]
"""
  check_parsing(expected, text)



def test_trailing_blank():
  """Test parsing text containing an extra intended newline at the end."""
  expected = [ logs.LogLine(None"03-29 00:46:58.872""1000""1815""1816""I""abcd",
      "Newline after\n") ]
  text = """[ 03-29 00:46:58.872  1000: 1815: 1816 I/abcd ]
Newline after


"""
  check_parsing(expected, text)


def test_blank_between():
  """Test parsing text containing a newline in the middle."""
  expected = [ logs.LogLine(None"03-29 00:46:58.872""1000""1815""1816""I""abcd",
      "Message\n\nNewline between") ]
  text = """[ 03-29 00:46:58.872  1000: 1815: 1816 I/abcd ]
Message

Newline between

"""
  check_parsing(expected, text)


def test_preceeding_blank():
  """Test parsing text containing a newline then text."""
  expected = [ logs.LogLine(None"03-29 00:46:58.872""1000""1815""1816""I""abcd",
      "\nNewline before") ]
  text = """[ 03-29 00:46:58.872  1000: 1815: 1816 I/abcd ]

Newline before

"""
  check_parsing(expected, text)


def test_one_blank():
  """Test parsing text one blank line."""
  expected = [ logs.LogLine(None"03-29 00:46:58.872""1000""1815""1816""I""abcd",
      "\n") ]
  text = """[ 03-29 00:46:58.872  1000: 1815: 1816 I/abcd ]


"""
  check_parsing(expected, text)


def test_two_blanks():
  """Test parsing text two blank lines."""
  expected = [ logs.LogLine(None"03-29 00:46:58.872""1000""1815""1816""I""abcd",
      "\n\n") ]
  text = """[ 03-29 00:46:58.872  1000: 1815: 1816 I/abcd ]



"""
  check_parsing(expected, text)


def test_two_lines_noblanks():
  """Test parsing two lines of text with no blank lines."""
  expected = [ logs.LogLine(None"03-29 00:46:58.872""1000""1815""1816""I""abcd",
      "One\nTwo") ]
  text = """[ 03-29 00:46:58.872  1000: 1815: 1816 I/abcd ]
One
Two

"""
  check_parsing(expected, text)


def test_chatty():
  """Test a log with chatty identical messages."""

  expected = [
      logs.LogLine("system""03-29 00:46:58.857""1000""1815""1816""I""Noisy""Message"),
      logs.LogLine("system""03-29 00:46:58.858""1000""1815""1816""I""Noisy""Message"),
      logs.LogLine("system""03-29 00:46:58.858""1000""1815""1816""I""Noisy""Message"),
      logs.LogLine("system""03-29 00:46:58.858""1000""1815""1816""I""Noisy""Message"),
      logs.LogLine("system""03-29 00:46:58.859""1000""1815""1816""I""Noisy""Message"),
      ]
  text = """--------- beginning of system
03-29 00:46:58.857  100018151816 I/Noisy ]
Message

03-29 00:46:58.858  100018151816 I/chatty ]
uid=1000(system) Thread-6 identical 3 lines

03-29 00:46:58.859  100018151816 I/Noisy ]
Message

"""
  check_parsing(expected, text)



def test_normal():
  """Test a realistic (albeit short) log."""
  expected = [
      logs.LogLine("system""03-29 00:46:58.857""1000""1815""1816""I""Package: ]Manager",
        "/system/app/KeyChain changed; collecting certs"),
      logs.LogLine("system""03-29 00:46:58.872""1000""1815""1816""I""PackageManager",
        "/system/app/HiddenMenu changed; collecting certs"),
      logs.LogLine("main""03-29 00:46:58.872""1000""1815""1816""I""PackageManager",
        "/system/app/HiddenMenu changed; collecting certs"),
  ]
  
  text = """--------- beginning of system
03-29 00:46:58.857  100018151816 I/Package: ]Manager ]
/system/app/KeyChain changed; collecting certs

03-29 00:46:58.872  100018151816 I/PackageManager ]
/system/app/HiddenMenu changed; collecting certs

--------- switch to main
03-29 00:46:58.872  100018151816 I/PackageManager ]
/system/app/HiddenMenu changed; collecting certs

"""
  check_parsing(expected, text)



def check_parsing(expected, text):
  """Parse the text and see if it parsed as expected."""
  processes = ps.ProcessSet()
  result = [x for x in logs.ParseLogcat(StringIO.StringIO(text), processes)]
  if result != expected:
    raise Exception("test failed.\nexpected:\n[%s]\nactual\n[%s]" % (
        ", ".join([str(r) for r in expected]),
        ", ".join([str(r) for r in result])))


def main():
  test_empty()
  test_none()
  test_trailing_blank()
  test_blank_between()
  test_preceeding_blank()
  test_one_blank()
  test_two_blanks()
  test_chatty()
  test_normal()


if __name__ == "__main__":
    main()


# vim: set ts=2 sw=2 sts=2 tw=100 nocindent autoindent smartindent expandtab:

Messung V0.5 in Prozent
C=100 H=88 G=94

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.12Bemerkung:  (vorverarbeitet am  2026-06-26) ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.