// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// @dart = 2.9

/// @assertion ProcessResult(int pid, int exitCode, stdout, stderr)
///
/// @description Checks that constructor [ProcessResult] creates a new object of
/// type ProcessResult and two objects created with this constructor with same
/// parameters are not equal.
/// @author ngl@unipro.ru

import "dart:io";
import "../../../Utils/expect.dart";

main() {
  int pid = 22;
  int eCode = 0;
  var stdOut = null;
  var stdErr = null;
  ProcessResult pr1 = new ProcessResult(pid, eCode, stdOut, stdErr);
  ProcessResult pr2 = new ProcessResult(pid, eCode, stdOut, stdErr);
  Expect.isFalse(pr1 == pr2);
}
