From c8f326e5f6d55892789bc50bb1616f6371a24e7c Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Thu, 10 Feb 2011 17:04:54 +0000 Subject: After seeing the 481 line diff I had to apply t... After seeing the 481 line diff I had to apply to bring the checkfile up to date, I concluded this test cannot be in the general pool: this is the third build break in the last few days, because it changes output like some people change socks. (Hygenic people.) Sorry to move it to disabled iulian, but I don't know what else to do with it on short notice. Review by dragos. --- test/disabled/presentation/simple-tests.check | 389 +++++++++++++++++++++ test/disabled/presentation/simple-tests.javaopts | 1 + .../simple-tests/SimpleInteractiveTest.scala | 11 + .../presentation/simple-tests/src/Tester.scala | 204 +++++++++++ 4 files changed, 605 insertions(+) create mode 100644 test/disabled/presentation/simple-tests.check create mode 100644 test/disabled/presentation/simple-tests.javaopts create mode 100644 test/disabled/presentation/simple-tests/SimpleInteractiveTest.scala create mode 100644 test/disabled/presentation/simple-tests/src/Tester.scala (limited to 'test/disabled') diff --git a/test/disabled/presentation/simple-tests.check b/test/disabled/presentation/simple-tests.check new file mode 100644 index 0000000000..67d8ac7269 --- /dev/null +++ b/test/disabled/presentation/simple-tests.check @@ -0,0 +1,389 @@ +reload: Tester.scala +askTypeCompletion at Tester.scala(16,25) + +================================================================================ +[response] aksTypeCompletion at (16,25) +retreived 75 members +TypeMember(method !=,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method !=,(x$1: Any)Boolean,true,true,) +TypeMember(method ==,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method ==,(x$1: Any)Boolean,true,true,) +TypeMember(method >,(that: Tester.this.settings.Setting)Boolean,true,true,) +TypeMember(method >=,(that: Tester.this.settings.Setting)Boolean,true,true,) +TypeMember(method ##,()Int,true,true,) +TypeMember(method <,(that: Tester.this.settings.Setting)Boolean,true,true,) +TypeMember(method <=,(that: Tester.this.settings.Setting)Boolean,true,true,) +TypeMember(method ->,[B](y: B)(Tester.this.settings.BooleanSetting, B),true,false,method any2ArrowAssoc) +TypeMember(method +,(other: String)java.lang.String,true,false,method any2stringadd) +TypeMember(method →,[B](y: B)(Tester.this.settings.BooleanSetting, B),true,false,method any2ArrowAssoc) +TypeMember(constructor BooleanSetting,(name: String,descr: String)Tester.this.settings.BooleanSetting,true,false,) +TypeMember(constructor Object,()java.lang.Object,true,true,) +TypeMember(constructor StringAdd,(self: Any)scala.runtime.StringAdd,true,false,method any2stringadd) +TypeMember(constructor ArrowAssoc,(x: Tester.this.settings.BooleanSetting)ArrowAssoc[Tester.this.settings.BooleanSetting],true,false,method any2ArrowAssoc) +TypeMember(type T,Tester.this.settings.verbose.T,true,false,) +TypeMember(variable _abbreviations,List[String],false,true,) +TypeMember(variable _helpSyntax,String,false,true,) +TypeMember(variable _postSetHook,(Tester.this.settings.verbose.type) => Unit,false,true,) +TypeMember(method abbreviations,=> List[String],true,true,) +TypeMember(method asInstanceOf,[T0]=> T0,true,true,) +TypeMember(method choices,=> List[String],true,true,) +TypeMember(method clone,()java.lang.Object,false,true,) +TypeMember(method compare,(that: Tester.this.settings.Setting)Int,true,true,) +TypeMember(method compareTo,(that: Tester.this.settings.Setting)Int,true,true,) +TypeMember(method dependencies,=> List[(Tester.this.settings.Setting, String)],true,true,) +TypeMember(variable dependency,Option[(Tester.this.settings.Setting, String)],false,true,) +TypeMember(method dependsOn,(s: Tester.this.settings.Setting,value: String)Tester.this.settings.verbose.type,true,true,) +TypeMember(value descr,String,false,false,) +TypeMember(method ensuring,(cond: (Tester.this.settings.BooleanSetting) => Boolean,msg: => Any)Tester.this.settings.BooleanSetting,true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: (Tester.this.settings.BooleanSetting) => Boolean)Tester.this.settings.BooleanSetting,true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: Boolean,msg: => Any)Tester.this.settings.BooleanSetting,true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: Boolean)Tester.this.settings.BooleanSetting,true,false,method any2Ensuring) +TypeMember(method eq,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method equals,(that: Any)Boolean,true,true,) +TypeMember(method errorAndValue,[T](msg: String,x: T)T,true,true,) +TypeMember(method finalize,()Unit,false,true,) +TypeMember(method formatted,(fmtstr: String)String,true,false,method any2stringadd) +TypeMember(method hashCode,()Int,true,true,) +TypeMember(value helpDescription,String,false,true,) +TypeMember(method helpSyntax,=> String,true,true,) +TypeMember(method isAdvanced,=> Boolean,true,true,) +TypeMember(method isDefault,=> Boolean,true,true,) +TypeMember(method isForDebug,=> Boolean,true,true,) +TypeMember(method isInstanceOf,[T0]=> Boolean,true,true,) +TypeMember(method isInternalOnly,=> Boolean,true,true,) +TypeMember(method isPrivate,=> Boolean,true,true,) +TypeMember(method isStandard,=> Boolean,true,true,) +TypeMember(value name,String,false,false,) +TypeMember(method ne,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method notify,()Unit,true,true,) +TypeMember(method notifyAll,()Unit,true,true,) +TypeMember(method postSetHook,()Unit,true,true,) +TypeMember(method respondsTo,(label: String)Boolean,true,true,) +TypeMember(value self,Any,false,false,method any2stringadd) +TypeMember(variable setByUser,Boolean,false,true,) +TypeMember(method synchronized,[T0](x$1: T0)T0,true,true,) +TypeMember(method toString,()String,true,true,) +TypeMember(method tryToSet,(args: List[String])Some[List[String]],true,false,) +TypeMember(method tryToSetColon,(args: List[String])Option[Tester.this.settings.ResultOfTryToSet],true,true,) +TypeMember(method tryToSetFromPropertyValue,(s: String)Unit,true,false,) +TypeMember(method tryToSetProperty,(args: List[String])Option[Tester.this.settings.ResultOfTryToSet],true,true,) +TypeMember(method unparse,=> List[String],true,false,) +TypeMember(variable v,Boolean,false,false,) +TypeMember(method value,=> Tester.this.settings.verbose.T,true,true,) +TypeMember(method value_=,(arg: Tester.this.settings.verbose.T)Unit,true,true,) +TypeMember(method wait,()Unit,true,true,) +TypeMember(method wait,(x$1: Long,x$2: Int)Unit,true,true,) +TypeMember(method wait,(x$1: Long)Unit,true,true,) +TypeMember(method withAbbreviation,(s: String)Tester.this.settings.verbose.type,true,true,) +TypeMember(method withHelpSyntax,(s: String)Tester.this.settings.verbose.type,true,true,) +TypeMember(method withPostSetHook,(f: (Tester.this.settings.verbose.type) => Unit)Tester.this.settings.verbose.type,true,true,) +TypeMember(value x,Tester.this.settings.BooleanSetting,false,false,method any2ArrowAssoc) +askTypeCompletion at Tester.scala(23,24) + +================================================================================ +[response] aksTypeCompletion at (23,24) +retreived 46 members +TypeMember(method !=,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method !=,(x$1: Any)Boolean,true,true,) +TypeMember(method ==,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method ==,(x$1: Any)Boolean,true,true,) +TypeMember(method ##,()Int,true,true,) +TypeMember(method ->,[B](y: B)(scala.tools.nsc.interactive.Response[U], B),true,false,method any2ArrowAssoc) +TypeMember(method +,(other: String)java.lang.String,true,false,method any2stringadd) +TypeMember(method →,[B](y: B)(scala.tools.nsc.interactive.Response[U], B),true,false,method any2ArrowAssoc) +TypeMember(constructor Response,()scala.tools.nsc.interactive.Response[U],true,false,) +TypeMember(constructor StringAdd,(self: Any)scala.runtime.StringAdd,true,false,method any2stringadd) +TypeMember(constructor ArrowAssoc,(x: scala.tools.nsc.interactive.Response[U])ArrowAssoc[scala.tools.nsc.interactive.Response[U]],true,false,method any2ArrowAssoc) +TypeMember(method asInstanceOf,[T0]=> T0,true,true,) +TypeMember(method cancel,()Unit,true,false,) +TypeMember(variable cancelled,Boolean,false,false,) +TypeMember(method clear,()Unit,true,false,) +TypeMember(method clone,()java.lang.Object,false,true,) +TypeMember(variable complete,Boolean,false,false,) +TypeMember(variable data,Option[Either[U,Throwable]],false,false,) +TypeMember(method ensuring,(cond: (scala.tools.nsc.interactive.Response[U]) => Boolean,msg: => Any)scala.tools.nsc.interactive.Response[U],true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: (scala.tools.nsc.interactive.Response[U]) => Boolean)scala.tools.nsc.interactive.Response[U],true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: Boolean,msg: => Any)scala.tools.nsc.interactive.Response[U],true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: Boolean)scala.tools.nsc.interactive.Response[U],true,false,method any2Ensuring) +TypeMember(method eq,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method equals,(x$1: Any)Boolean,true,true,) +TypeMember(method finalize,()Unit,false,true,) +TypeMember(method formatted,(fmtstr: String)String,true,false,method any2stringadd) +TypeMember(method get,(timeout: Long)Option[Either[U,Throwable]],true,false,) +TypeMember(method get,=> Either[U,Throwable],true,false,) +TypeMember(method hashCode,()Int,true,true,) +TypeMember(method isCancelled,=> Boolean,true,false,) +TypeMember(method isComplete,=> Boolean,true,false,) +TypeMember(method isInstanceOf,[T0]=> Boolean,true,true,) +TypeMember(method ne,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method notify,()Unit,true,true,) +TypeMember(method notifyAll,()Unit,true,true,) +TypeMember(method raise,(exc: Throwable)Unit,true,false,) +TypeMember(value self,Any,false,false,method any2stringadd) +TypeMember(method set,(x: U)Unit,true,false,) +TypeMember(method setProvisionally,(x: U)Unit,true,false,) +TypeMember(method synchronized,[T0](x$1: T0)T0,true,true,) +TypeMember(method toString,()java.lang.String,true,true,) +TypeMember(method wait,()Unit,true,true,) +TypeMember(method wait,(x$1: Long,x$2: Int)Unit,true,true,) +TypeMember(method wait,(x$1: Long)Unit,true,true,) +TypeMember(value x,scala.tools.nsc.interactive.Response[U],false,false,method any2ArrowAssoc) +askTypeCompletion at Tester.scala(27,23) + +================================================================================ +[response] aksTypeCompletion at (27,23) +retreived 195 members +TypeMember(method !=,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method !=,(x$1: Any)Boolean,true,true,) +TypeMember(method ==,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method ==,(x$1: Any)Boolean,true,true,) +TypeMember(method ##,()Int,true,true,) +TypeMember(method ->,[B](y: B)(scala.tools.nsc.Settings, B),true,false,method any2ArrowAssoc) +TypeMember(method +,(other: String)java.lang.String,true,false,method any2stringadd) +TypeMember(method →,[B](y: B)(scala.tools.nsc.Settings, B),true,false,method any2ArrowAssoc) +TypeMember(constructor Settings,()scala.tools.nsc.Settings,true,false,) +TypeMember(constructor Settings,(errorFn: (String) => Unit)scala.tools.nsc.Settings,true,false,) +TypeMember(constructor StringAdd,(self: Any)scala.runtime.StringAdd,true,false,method any2stringadd) +TypeMember(constructor ArrowAssoc,(x: scala.tools.nsc.Settings)ArrowAssoc[scala.tools.nsc.Settings],true,false,method any2ArrowAssoc) +TypeMember(trait AbsSetting,Tester.this.settings.AbsSetting,true,true,) +TypeMember(trait AbsSettingValue,Tester.this.settings.AbsSettingValue,true,true,) +TypeMember(class BooleanSetting,Tester.this.settings.BooleanSetting,true,true,) +TypeMember(method BooleanSetting,(name: String,descr: String)Tester.this.settings.BooleanSetting,true,true,) +TypeMember(class ChoiceSetting,Tester.this.settings.ChoiceSetting,true,true,) +TypeMember(method ChoiceSetting,(name: String,helpArg: String,descr: String,choices: List[String],default: String)Tester.this.settings.ChoiceSetting,true,true,) +TypeMember(class IntSetting,Tester.this.settings.IntSetting,true,true,) +TypeMember(method IntSetting,(name: String,descr: String,default: Int,range: Option[(Int, Int)],parser: (String) => Option[Int])Tester.this.settings.IntSetting,true,true,) +TypeMember(trait InternalSetting,Tester.this.settings.InternalSetting,true,true,) +TypeMember(class MultiStringSetting,Tester.this.settings.MultiStringSetting,true,true,) +TypeMember(method MultiStringSetting,(name: String,arg: String,descr: String)Tester.this.settings.MultiStringSetting,true,true,) +TypeMember(class OutputDirs,Tester.this.settings.OutputDirs,true,true,) +TypeMember(class OutputSetting,Tester.this.settings.OutputSetting,true,true,) +TypeMember(method OutputSetting,(outputDirs: Tester.this.settings.OutputDirs,default: String)Tester.this.settings.OutputSetting,true,true,) +TypeMember(class PathSetting,Tester.this.settings.PathSetting,true,true,) +TypeMember(method PathSetting,(name: String,descr: String,default: String)Tester.this.settings.PathSetting,true,true,) +TypeMember(class PhasesSetting,Tester.this.settings.PhasesSetting,true,true,) +TypeMember(method PhasesSetting,(name: String,descr: String)Tester.this.settings.PhasesSetting,true,true,) +TypeMember(type ResultOfTryToSet,Tester.this.settings.ResultOfTryToSet,true,true,) +TypeMember(class Setting,Tester.this.settings.Setting,true,true,) +TypeMember(class SettingGroup,Tester.this.settings.SettingGroup,true,true,) +TypeMember(lazy value SettingOrdering,Ordering[Tester.this.settings.Setting],false,true,) +TypeMember(trait SettingValue,Tester.this.settings.SettingValue,true,true,) +TypeMember(method StringSetting,(name: String,arg: String,descr: String,default: String)Tester.this.settings.StringSetting,true,true,) +TypeMember(class StringSetting,Tester.this.settings.StringSetting,true,true,) +TypeMember(method XO,=> Tester.this.settings.BooleanSetting,true,true,) +TypeMember(value Xchecknull,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xcloselim,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xdce,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xexperimental,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xhelp,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xlinearizer,Tester.this.settings.ChoiceSetting,false,true,) +TypeMember(value XlogImplicits,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xmigration28,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xnojline,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xprint,Tester.this.settings.PhasesSetting,false,true,) +TypeMember(value Xprintpos,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xshowcls,Tester.this.settings.StringSetting,false,true,) +TypeMember(value Xshowobj,Tester.this.settings.StringSetting,false,true,) +TypeMember(value Xshowtrees,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xwarnfatal,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Xwarninit,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ybuilderdebug,Tester.this.settings.ChoiceSetting,false,true,) +TypeMember(value Ybuildmanagerdebug,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ycompacttrees,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ycompletion,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value YdepMethTpes,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Yhelp,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Yidedebug,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ylogcp,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value YmethodInfer,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ynogenericsig,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ynosqueeze,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ynotnull,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ypmatdebug,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ypmatnaive,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value YpresentationDebug,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value YpresentationDelay,Tester.this.settings.IntSetting,false,true,) +TypeMember(value YpresentationLog,Tester.this.settings.StringSetting,false,true,) +TypeMember(value YpresentationReplay,Tester.this.settings.StringSetting,false,true,) +TypeMember(value YpresentationVerbose,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Yprofile,Tester.this.settings.PhasesSetting,false,true,) +TypeMember(value YprofileClass,Tester.this.settings.StringSetting,false,true,) +TypeMember(value YprofileMem,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Yrangepos,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Yrecursion,Tester.this.settings.IntSetting,false,true,) +TypeMember(value Yrepldebug,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value YrichExes,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Yshow,Tester.this.settings.PhasesSetting,false,true,) +TypeMember(value Yshowsyms,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ystatistics,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value Ytyperdebug,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value YvirtClasses,Boolean,false,true,) +TypeMember(value Ywarndeadcode,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method add,[T <: Tester.this.settings.Setting](s: T)T,false,true,) +TypeMember(lazy value allSettings,scala.collection.mutable.HashSet[Tester.this.settings.Setting],false,true,) +TypeMember(value argfiles,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method asInstanceOf,[T0]=> T0,true,true,) +TypeMember(value assemextdirs,Tester.this.settings.StringSetting,false,true,) +TypeMember(value assemname,Tester.this.settings.StringSetting,false,true,) +TypeMember(value assemrefs,Tester.this.settings.StringSetting,false,true,) +TypeMember(value bootclasspath,Tester.this.settings.PathSetting,false,true,) +TypeMember(value browse,Tester.this.settings.PhasesSetting,false,true,) +TypeMember(value check,Tester.this.settings.PhasesSetting,false,true,) +TypeMember(method checkDependencies,=> Boolean,true,true,) +TypeMember(value checkInit,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value classpath,Tester.this.settings.PathSetting,false,true,) +TypeMember(method clone,()java.lang.Object,false,true,) +TypeMember(method copy,()scala.tools.nsc.Settings,true,true,) +TypeMember(value d,Tester.this.settings.OutputSetting,false,true,) +TypeMember(value debug,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method debuginfo,=> Tester.this.settings.ChoiceSetting,true,true,) +TypeMember(method dependenciesFile,=> Tester.this.settings.StringSetting,true,true,) +TypeMember(value dependencyfile,Tester.this.settings.StringSetting,false,true,) +TypeMember(value deprecation,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method disable,(s: Tester.this.settings.Setting)scala.collection.mutable.HashSet[Tester.this.settings.Setting],true,true,) +TypeMember(value disable,Tester.this.settings.MultiStringSetting,false,true,) +TypeMember(value elidebelow,Tester.this.settings.IntSetting,false,true,) +TypeMember(method embeddedDefaults,(loader: java.lang.ClassLoader)Unit,true,true,) +TypeMember(method embeddedDefaults,[T](implicit evidence$1: Manifest[T])Unit,true,true,) +TypeMember(value encoding,Tester.this.settings.StringSetting,false,true,) +TypeMember(method ensuring,(cond: (scala.tools.nsc.Settings) => Boolean,msg: => Any)scala.tools.nsc.Settings,true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: (scala.tools.nsc.Settings) => Boolean)scala.tools.nsc.Settings,true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: Boolean,msg: => Any)scala.tools.nsc.Settings,true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: Boolean)scala.tools.nsc.Settings,true,false,method any2Ensuring) +TypeMember(method eq,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method equals,(that: Any)Boolean,true,true,) +TypeMember(value errorFn,(String) => Unit,false,false,) +TypeMember(value explaintypes,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(variable explicitParentLoader,Option[java.lang.ClassLoader],false,true,) +TypeMember(value extdirs,Tester.this.settings.PathSetting,false,true,) +TypeMember(method finalize,()Unit,false,true,) +TypeMember(method formatted,(fmtstr: String)String,true,false,method any2stringadd) +TypeMember(value future,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value g,Tester.this.settings.ChoiceSetting,false,true,) +TypeMember(value genPhaseGraph,Tester.this.settings.StringSetting,false,true,) +TypeMember(method getClasspath,(id: String,loader: java.lang.ClassLoader)Option[String],false,true,) +TypeMember(method hashCode,()Int,true,true,) +TypeMember(value help,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value inline,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method isInstanceOf,[T0]=> Boolean,true,true,) +TypeMember(value javabootclasspath,Tester.this.settings.PathSetting,false,true,) +TypeMember(value javaextdirs,Tester.this.settings.PathSetting,false,true,) +TypeMember(value log,Tester.this.settings.PhasesSetting,false,true,) +TypeMember(method lookupSetting,(cmd: String)Option[Tester.this.settings.Setting],true,true,) +TypeMember(value make,Tester.this.settings.ChoiceSetting,false,true,) +TypeMember(method ne,(x$1: AnyRef)Boolean,true,true,) +TypeMember(value noCompletion,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value noForwarders,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value noSelfCheck,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value noassertions,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value noimports,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value nospecialization,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method notify,()Unit,true,true,) +TypeMember(method notifyAll,()Unit,true,true,) +TypeMember(value nouescape,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value nowarn,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method nowarnings,=> Tester.this.settings.BooleanSetting,true,true,) +TypeMember(value optimise,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method outdir,=> Tester.this.settings.OutputSetting,true,true,) +TypeMember(lazy value outputDirs,Tester.this.settings.OutputDirs,false,true,) +TypeMember(method parseParams,(args: List[String])List[String],false,true,) +TypeMember(value plugin,Tester.this.settings.MultiStringSetting,false,true,) +TypeMember(value pluginOptions,Tester.this.settings.MultiStringSetting,false,true,) +TypeMember(value pluginsDir,Tester.this.settings.StringSetting,false,true,) +TypeMember(value print,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method printLate,=> Tester.this.settings.BooleanSetting,true,true,) +TypeMember(value printtypes,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method processArgumentString,(params: String)(Boolean, List[String]),true,true,) +TypeMember(method processArguments,(arguments: List[String],processAll: Boolean)(Boolean, List[String]),true,true,) +TypeMember(value prompt,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method recreateArgs,=> List[String],true,true,) +TypeMember(value refinementMethodDispatch,Tester.this.settings.ChoiceSetting,false,true,) +TypeMember(value require,Tester.this.settings.MultiStringSetting,false,true,) +TypeMember(value resident,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value script,Tester.this.settings.StringSetting,false,true,) +TypeMember(value self,Any,false,false,method any2stringadd) +TypeMember(value selfInAnnots,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value showPhases,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value showPlugins,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value skip,Tester.this.settings.PhasesSetting,false,true,) +TypeMember(value sourceReader,Tester.this.settings.StringSetting,false,true,) +TypeMember(value sourcedir,Tester.this.settings.StringSetting,false,true,) +TypeMember(value sourcepath,Tester.this.settings.PathSetting,false,true,) +TypeMember(method splitParams,(line: String)List[String],true,true,) +TypeMember(value stop,Tester.this.settings.PhasesSetting,false,true,) +TypeMember(method synchronized,[T0](x$1: T0)T0,true,true,) +TypeMember(value target,Tester.this.settings.ChoiceSetting,false,true,) +TypeMember(method toConciseString,=> String,true,true,) +TypeMember(method toString,()String,true,true,) +TypeMember(value unchecked,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value uniqid,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value usejavacp,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method userSetSettings,=> scala.collection.Set[Tester.this.settings.Setting],true,true,) +TypeMember(value verbose,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value version,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(method visibleSettings,=> scala.collection.Set[Tester.this.settings.Setting],true,true,) +TypeMember(method wait,()Unit,true,true,) +TypeMember(method wait,(x$1: Long,x$2: Int)Unit,true,true,) +TypeMember(method wait,(x$1: Long)Unit,true,true,) +TypeMember(value writeICode,Tester.this.settings.BooleanSetting,false,true,) +TypeMember(value x,scala.tools.nsc.Settings,false,false,method any2ArrowAssoc) +askTypeCompletion at Tester.scala(105,29) + +================================================================================ +[response] aksTypeCompletion at (105,29) +retreived 50 members +TypeMember(method !=,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method !=,(x$1: Any)Boolean,true,true,) +TypeMember(method ==,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method ==,(x$1: Any)Boolean,true,true,) +TypeMember(method ##,()Int,true,true,) +TypeMember(method ->,[B](y: B)(scala.tools.nsc.util.SourceFile, B),true,false,method any2ArrowAssoc) +TypeMember(method +,(other: String)java.lang.String,true,false,method any2stringadd) +TypeMember(method →,[B](y: B)(scala.tools.nsc.util.SourceFile, B),true,false,method any2ArrowAssoc) +TypeMember(constructor SourceFile,()scala.tools.nsc.util.SourceFile,true,false,) +TypeMember(constructor StringAdd,(self: Any)scala.runtime.StringAdd,true,false,method any2stringadd) +TypeMember(constructor ArrowAssoc,(x: scala.tools.nsc.util.SourceFile)ArrowAssoc[scala.tools.nsc.util.SourceFile],true,false,method any2ArrowAssoc) +TypeMember(method asInstanceOf,[T0]=> T0,true,true,) +TypeMember(method beginsWith,(offset: Int,text: String)Boolean,true,false,) +TypeMember(method clone,()java.lang.Object,false,true,) +TypeMember(method content,=> Array[Char],true,false,) +TypeMember(method dbg,(offset: Int)java.lang.String,true,false,) +TypeMember(method ensuring,(cond: (scala.tools.nsc.util.SourceFile) => Boolean,msg: => Any)scala.tools.nsc.util.SourceFile,true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: (scala.tools.nsc.util.SourceFile) => Boolean)scala.tools.nsc.util.SourceFile,true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: Boolean,msg: => Any)scala.tools.nsc.util.SourceFile,true,false,method any2Ensuring) +TypeMember(method ensuring,(cond: Boolean)scala.tools.nsc.util.SourceFile,true,false,method any2Ensuring) +TypeMember(method eq,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method equals,(x$1: Any)Boolean,true,true,) +TypeMember(method file,=> scala.tools.nsc.io.AbstractFile,true,false,) +TypeMember(method finalize,()Unit,false,true,) +TypeMember(method formatted,(fmtstr: String)String,true,false,method any2stringadd) +TypeMember(method hashCode,()Int,true,true,) +TypeMember(method identifier,(pos: scala.tools.nsc.util.Position)Option[String],true,false,) +TypeMember(method isInstanceOf,[T0]=> Boolean,true,true,) +TypeMember(method isLineBreak,(idx: Int)Boolean,true,false,) +TypeMember(method isSelfContained,=> Boolean,true,false,) +TypeMember(method length,=> Int,true,false,) +TypeMember(method lineToOffset,(index: Int)Int,true,false,) +TypeMember(method lineToString,(index: Int)String,true,false,) +TypeMember(method ne,(x$1: AnyRef)Boolean,true,true,) +TypeMember(method notify,()Unit,true,true,) +TypeMember(method notifyAll,()Unit,true,true,) +TypeMember(method offsetToLine,(offset: Int)Int,true,false,) +TypeMember(method path,=> String,true,false,) +TypeMember(method position,(line: Int,column: Int)scala.tools.nsc.util.Position,true,false,) +TypeMember(method position,(offset: Int)scala.tools.nsc.util.Position,true,false,) +TypeMember(method positionInUltimateSource,(position: scala.tools.nsc.util.Position)scala.tools.nsc.util.Position,true,false,) +TypeMember(value self,Any,false,false,method any2stringadd) +TypeMember(method skipWhitespace,(offset: Int)Int,true,false,) +TypeMember(method synchronized,[T0](x$1: T0)T0,true,true,) +TypeMember(method toString,()String,true,false,) +TypeMember(method wait,()Unit,true,true,) +TypeMember(method wait,(x$1: Long,x$2: Int)Unit,true,true,) +TypeMember(method wait,(x$1: Long)Unit,true,true,) +TypeMember(value x,scala.tools.nsc.util.SourceFile,false,false,method any2ArrowAssoc) +askTypeAt at Tester.scala(18,13) +[response] askTypeAt at (18,13) +val limit: Long = java.this.lang.System.currentTimeMillis().+(Tester.this.randomDelayMillis) +askTypeAt at Tester.scala(19,11) +[response] askTypeAt at (19,11) +val res: scala.tools.nsc.interactive.Response[U] = new scala.tools.nsc.interactive.Response[U]() diff --git a/test/disabled/presentation/simple-tests.javaopts b/test/disabled/presentation/simple-tests.javaopts new file mode 100644 index 0000000000..4af888f9c2 --- /dev/null +++ b/test/disabled/presentation/simple-tests.javaopts @@ -0,0 +1 @@ +-Dfile.encoding=UTF-8 \ No newline at end of file diff --git a/test/disabled/presentation/simple-tests/SimpleInteractiveTest.scala b/test/disabled/presentation/simple-tests/SimpleInteractiveTest.scala new file mode 100644 index 0000000000..014fd24b6f --- /dev/null +++ b/test/disabled/presentation/simple-tests/SimpleInteractiveTest.scala @@ -0,0 +1,11 @@ +import scala.tools.nsc.interactive.tests._ + +/** Simple test that shows how to use the InteractiveTest class. It uses the + * inherited runTest method that runs completion and typedAt tests on all + * sources found under src/ + */ +object Test extends InteractiveTest { + override val runRandomTests = false +// settings.YpresentationDebug.value = true +// override val synchronousRequests = false +} diff --git a/test/disabled/presentation/simple-tests/src/Tester.scala b/test/disabled/presentation/simple-tests/src/Tester.scala new file mode 100644 index 0000000000..cb62187514 --- /dev/null +++ b/test/disabled/presentation/simple-tests/src/Tester.scala @@ -0,0 +1,204 @@ +package scala.tools.nsc +package interactive +package tests + +import util._ +import reporters._ +import io.AbstractFile +import collection.mutable.ArrayBuffer + +class Tester(ntests: Int, inputs: Array[SourceFile], settings: Settings) { + + val reporter = new StoreReporter + val compiler = new Global(settings, reporter) + + def askAndListen[T, U](msg: String, arg: T, op: (T, Response[U]) => Unit) { + if (settings.verbose./*!*/value) print(msg+" "+arg+": ") + val TIMEOUT = 10 // ms + val limit/*?*/ = System.currentTimeMillis() + randomDelayMillis + val res/*?*/ = new Response[U] + op(arg, res) + while (!res.isComplete && !res.isCancelled) { + if (System.currentTimeMillis() > limit) { + print("c"); res./*!*/cancel() + } else res.get(TIMEOUT) match { + case Some(Left(t)) => + /**/ + if (settings./*!*/verbose.value) println(t) + case Some(Right(ex)) => + ex.printStackTrace() + println(ex) + case None => + } + } + } + + def askReload(sfs: SourceFile*) = askAndListen("reload", sfs.toList, compiler.askReload) + def askTypeAt(pos: Position) = askAndListen("type at", pos, compiler.askTypeAt) + def askTypeCompletion(pos: Position) = askAndListen("type at", pos, compiler.askTypeCompletion) + def askScopeCompletion(pos: Position) = askAndListen("type at", pos, compiler.askScopeCompletion) + + val rand = new java.util.Random() + + private def randomInverse(n: Int) = n / (rand.nextInt(n) + 1) + + private def randomDecreasing(n: Int) = { + var r = rand.nextInt((1 to n).sum) + var limit = n + var result = 0 + while (r > limit) { + result += 1 + r -= limit + limit -= 1 + } + result + } + + def randomSourceFileIdx() = rand.nextInt(inputs.length) + + def randomBatchesPerSourceFile(): Int = randomDecreasing(100) + + def randomChangesPerBatch(): Int = randomInverse(50) + + def randomPositionIn(sf: SourceFile) = rand.nextInt(sf.content.length) + + def randomNumChars() = randomInverse(100) + + def randomDelayMillis = randomInverse(10000) + + class Change(sfidx: Int, start: Int, nchars: Int, toLeft: Boolean) { + + private var pos = start + private var deleted: List[Char] = List() + + override def toString = + "In "+inputs(sfidx)+" at "+start+" take "+nchars+" to "+ + (if (toLeft) "left" else "right") + + def deleteOne() { + val sf = inputs(sfidx) + deleted = sf.content(pos) :: deleted + val sf1 = new BatchSourceFile(sf.file, sf.content.take(pos) ++ sf.content.drop(pos + 1)) + inputs(sfidx) = sf1 + askReload(sf1) + } + + def deleteAll() { + print("/"+nchars) + for (i <- 0 until nchars) { + if (toLeft) { + if (pos > 0 && pos <= inputs(sfidx).length) { + pos -= 1 + deleteOne() + } + } else { + if (pos < inputs(sfidx).length) { + deleteOne() + } + } + } + } + + def insertAll() { + for (chr <- if (toLeft) deleted else deleted.reverse) { + val sf = inputs(sfidx) + val (pre, post) = sf./*!*/content splitAt pos + pos += 1 + val sf1 = new BatchSourceFile(sf.file, pre ++ (chr +: post)) + inputs(sfidx) = sf1 + askReload(sf1) + } + } + } + + val testComment = "/**/" + + def testFileChanges(sfidx: Int) = { + lazy val testPositions: Seq[Int] = { + val sf = inputs(sfidx) + val buf = new ArrayBuffer[Int] + var pos = sf.content.indexOfSlice(testComment) + while (pos > 0) { + buf += pos + pos = sf.content.indexOfSlice(testComment, pos + 1) + } + buf + } + def otherTest() { + if (testPositions.nonEmpty) { + val pos = new OffsetPosition(inputs(sfidx), rand.nextInt(testPositions.length)) + rand.nextInt(3) match { + case 0 => askTypeAt(pos) + case 1 => askTypeCompletion(pos) + case 2 => askScopeCompletion(pos) + } + } + } + for (i <- 0 until randomBatchesPerSourceFile()) { + val changes = Vector.fill(/**/randomChangesPerBatch()) { + /**/ + new Change(sfidx, randomPositionIn(inputs(sfidx)), randomNumChars(), rand.nextBoolean()) + } + doTest(sfidx, changes, testPositions, otherTest) match { + case Some(errortrace) => + println(errortrace) + minimize(errortrace) + case None => + } + } + } + + def doTest(sfidx: Int, changes: Seq[Change], testPositions: Seq[Int], otherTest: () => Unit): Option[ErrorTrace] = { + print("new round with "+changes.length+" changes:") + changes foreach (_.deleteAll()) + otherTest() + def errorCount() = compiler.ask(() => reporter.ERROR.count) +// println("\nhalf test round: "+errorCount()) + changes.view.reverse foreach (_.insertAll()) + otherTest() + println("done test round: "+errorCount()) + if (errorCount() != 0) + Some(ErrorTrace(sfidx, changes, reporter.infos, inputs(sfidx).content)) + else + None + } + + case class ErrorTrace( + sfidx: Int, changes: Seq[Change], infos: collection.Set[reporter.Info], content: Array[Char]) { + override def toString = + "Sourcefile: "+inputs(sfidx)+ + "\nChanges:\n "+changes.mkString("\n ")+ + "\nErrors:\n "+infos.mkString("\n ")+ + "\nContents:\n"+content.mkString + } + + def minimize(etrace: ErrorTrace) {} + + /**/ + def run() { + askReload(inputs: _*) + for (i <- 0 until ntests) + testFileChanges(randomSourceFileIdx()) + } +} + +/* A program to do presentation compiler stress tests. + * Usage: + * + * scala scala.tools.nsc.interactive.test.Tester + * + * where is the number os tests to be run and is the set of files to test. + * This will do random deletions and re-insertions in any of the files. + * At places where an empty comment /**/ appears it will in addition randomly + * do ask-types, type-completions, or scope-completions. + */ +object Tester { + def main(args: Array[String]) { + val settings = new Settings() + val (_, filenames) = settings.processArguments(args.toList.tail, true) + println("filenames = "+filenames) + val files = filenames.toArray map (str => new BatchSourceFile(AbstractFile.getFile(str)): SourceFile) + new Tester(args(0).toInt, files, settings).run() + sys.exit(0) + } +} -- cgit v1.2.3