#!/usr/bin/perl -w
# $Id: //info.ravenbrook.com/project/mps/master/test/test/script/options#6 $
#

# global options for qa commands
#
# this file also has the job of detecting what platform
# we're on
#

1;

# first to see where we are:

sub platform_detect {
 if (($ENV{"OS"} || "") eq "Windows_NT") {
  $platform_os = "w3";
  # See https://msdn.microsoft.com/en-us/library/aa384274.aspx
  if ($ENV{"PROCESSOR_ARCHITECTURE"} eq "x86") {
   $platform_ar = "i3";
  } elsif ($ENV{"PROCESSOR_ARCHITECTURE"} eq "AMD64") {
   $platform_ar = "i6";
  } else {
   $platform_ar = "xx";
  }
  $platform_ct = "mv";
 } else {
  local $os = `uname -s`;
  chomp($os);
  if ($os eq "Darwin") {
   $platform_os = "xc";
   $platform_ct = "ll";
  } elsif ($os eq "FreeBSD") {
   $platform_os = "fr";
   $platform_ct = "gc";
  } elsif ($os eq "Linux") {
   $platform_os = "li";
   $platform_ct = "gc";
  } else {
   $platform_os = "xx";
   $platform_ct = "xx";
  }
  local $processor = `uname -m`;
  chomp($processor);
  if ($processor eq "i386") {
   $platform_ar = "i3";
  } elsif ($processor eq "x86_64") {
   $platform_ar = "i6";
  } else {
   $platform_ar = "xx";
  }
 }
 $qa_defaults{"PLATFORM"} = $platform_os . $platform_ar . $platform_ct;
}

%qa_options = (
 "v", "VARIETY",
 "i", "MPS_INCLUDE_DIR",
 "l", "MPS_LINK_OBJ",
 "p", "PLATFORM",
 "data", "DATA_DIR",
 "a", "PARAMETERS",
 "s", "STDIN",
 "g", "LOG_DIR",
 "m", "MAIL_TO",
 "subj", "MAIL_SUBJECT"
);

%qa_flags = (
 "danger", "DANGEROUS",
 "debug", "DEBUG_INFO",
 "mail", "MAIL_RESULTS"
);

#
# the default for PLATFORM will be set by &platform_detect,
# which is called from &harness_init. So the "..." below will
# never have any effect.
#

%qa_defaults = (
 "MPS_INCLUDE_DIR", $test_dir . "/../../code",
 "PLATFORM", "[error -- you shouldn't see this]",
 "VARIETY", "cool",
 "DEBUG_INFO", "off",
 "DANGEROUS", "off",
 "DATA_DIR", "$test_dir/../data",
 "LOG_DIR", "$test_dir/log",
 "PARAMETERS", "",
 "MAIL_RESULTS", "off",
 "MAIL_TO", "mm-qa-test-log",
 "MAIL_SUBJECT", "MMQA-log"
);

%qa_unlogged_opts =
 (DATA_DIR, 1, LOG_DIR, 1, MAIL_RESULTS, 1, MAIL_TO, 1, MAIL_SUBJECT, 1);
%qa_cumulative_opts =
 (PARAMETERS, 1);