code: def _check_valgrind(xml_file):
      
      log(_("checking for valgrind errors..."))
  
      # Load XML file created by valgrind
      xml = ET.ElementTree(file=xml_file)
  
      # Ensure that we don't get duplicate error messages.
      reported = set()
      for error in xml.iterfind("error"):
          # Type of error valgrind encountered
          kind = error.find("kind").text
  
          # Valgrind's error message
          what = error.find("xwhat/text" if kind.startswith("Leak_") else "what").text
  
          # Error message that we will report
          msg = ["\t", what]
  
          # Find first stack frame within student's code.
          for frame in error.iterfind("stack/frame"):
              obj = frame.find("obj")
              if obj is not None and internal.run_dir in Path(obj.text).parents:
                  file, line = frame.find("file"), frame.find("line")
                  if file is not None and line is not None:
                      msg.append(f": ({_('file')}: {file.text}, {_('line')}: {line.text})")
                  break
  
          msg = "".join(msg)
          if msg not in reported:
              log(msg)
              reported.add(msg)
  
      # Only raise exception if we encountered errors.
      if reported:
          raise Failure(_("valgrind tests failed; rerun with --log for more information."))
docs: Log and report any errors encountered by valgrind.