fix: problem config is not properly parsed
This commit is contained in:
parent
1dfe296820
commit
aaac7f57a0
@ -54,6 +54,29 @@ var (
|
||||
}
|
||||
)
|
||||
|
||||
func (c *ConfigRuntime) InitWithDefault(fallback *ConfigRuntime) {
|
||||
if c.Validate() != nil {
|
||||
*c = *fallback
|
||||
} else {
|
||||
c.FillDefault()
|
||||
}
|
||||
}
|
||||
|
||||
func (c *ConfigRuntime) FillDefault() {
|
||||
if c.SoftMemoryLimit <= 0 {
|
||||
// default to memory limit
|
||||
c.SoftMemoryLimit = c.MemoryLimit
|
||||
}
|
||||
if c.NProcLimit <= 0 {
|
||||
// default to not limited
|
||||
c.NProcLimit = 0
|
||||
}
|
||||
if c.WriteFileLimit <= 0 {
|
||||
// default to 1mb
|
||||
c.WriteFileLimit = 1
|
||||
}
|
||||
}
|
||||
|
||||
func (c *ConfigRuntime) Validate() error {
|
||||
if c.TimeLimit <= 0 {
|
||||
return errors.New("time limit <= 0")
|
||||
@ -222,16 +245,11 @@ func (s *service) ParseConfig(meta *JudgeMeta, skipCheck bool) (*Config, error)
|
||||
|
||||
// fill default
|
||||
for idx := range config.Languages {
|
||||
if config.Languages[idx].Runtime.Compile.Validate() != nil {
|
||||
config.Languages[idx].Runtime.Compile = DefaultCompileRuntime
|
||||
}
|
||||
if config.Languages[idx].Runtime.Check.Validate() != nil {
|
||||
config.Languages[idx].Runtime.Check = DefaultCheckRuntime
|
||||
}
|
||||
}
|
||||
if config.Prebuild.Validate() != nil {
|
||||
config.Prebuild = DefaultPrebuildRuntime
|
||||
config.Languages[idx].Runtime.Compile.InitWithDefault(&DefaultCompileRuntime)
|
||||
config.Languages[idx].Runtime.Check.InitWithDefault(&DefaultCheckRuntime)
|
||||
config.Languages[idx].Runtime.Run.FillDefault()
|
||||
}
|
||||
config.Prebuild.InitWithDefault(&DefaultPrebuildRuntime)
|
||||
|
||||
if skipCheck {
|
||||
return config, nil
|
||||
|
Loading…
Reference in New Issue
Block a user